@data-client/rest 0.12.3 → 0.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCB1bmRlZmluZWQgfCB0cnVlPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3RvciB7XG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJiBSZWFkb25seTxPPik6IFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRob2RUb1NpZGU8TT4gPVxuICBNIGV4dGVuZHMgc3RyaW5nID9cbiAgICBNIGV4dGVuZHMgJ0dFVCcgP1xuICAgICAgdW5kZWZpbmVkXG4gICAgOiB0cnVlXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogUmVzdEVuZHBvaW50IHR5cGVzIHNpbXBsaWZpZWQgKi9cbmV4cG9ydCB0eXBlIFJlc3RUeXBlPFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIEJvZHkgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IHBhZ2luYXRpb25GaWVsZDogc3RyaW5nIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICBSZXN0SW5zdGFuY2U8UmVzdEZldGNoPFVybFBhcmFtcywgQm9keSwgUj4sIFMsIE0sIE8+LFxuICBCb2R5IGV4dGVuZHMge30gPyBSZXN0VHlwZVdpdGhCb2R5PFVybFBhcmFtcywgUywgTSwgQm9keSwgUiwgTz5cbiAgOiBSZXN0VHlwZU5vQm9keTxVcmxQYXJhbXMsIFMsIE0sIFIsIE8+XG4+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZVdpdGhCb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgQm9keSA9IGFueSxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlTm9Cb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiB1bmRlZmluZWQ7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IHVuZGVmaW5lZCB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUj4sIFMsIE0sIE8+O1xuXG4vKiogU2ltcGxlIHBhcmFtZXRlcnMsIGFuZCBib2R5IGZldGNoIGZ1bmN0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUmVzdEZldGNoPFxuICBVcmxQYXJhbXMsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIEJvZHkgPSB7fSxcbiAgUmVzb2x2ZSA9IGFueSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIHwgUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+XG4gIDogUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoV2l0aEJvZHk8UCwgQiA9IHt9LCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hOb0JvZHk8UCwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+O1xuXG4vLyBzYW1lIGFsZ29yaXRobSwgYnV0IGZvciBBcmdzIChha2EgcmVhZG9ubHkgYW55W10pXG5leHBvcnQgdHlwZSBQYXJhbVRvQXJnczxQPiA9XG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyBbXVxuICA6IHt9IGV4dGVuZHMgUCA/XG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgIFtdXG4gICAgOiBbXSB8IFtQXVxuICA6IFtQXTtcblxudHlwZSBJZlR5cGVTY3JpcHRMb29zZU51bGw8WSwgTj4gPSAxIHwgdW5kZWZpbmVkIGV4dGVuZHMgMSA/IFkgOiBOO1xuXG5leHBvcnQgdHlwZSBLZXlvZlJlc3RFbmRwb2ludCA9IGtleW9mIFJlc3RJbnN0YW5jZTtcblxuZXhwb3J0IHR5cGUgRnJvbUZhbGxCYWNrPEsgZXh0ZW5kcyBrZXlvZiBFLCBPLCBFPiA9XG4gIEsgZXh0ZW5kcyBrZXlvZiBPID8gT1tLXSA6IEVbS107XG5cbmV4cG9ydCB0eXBlIEZldGNoTXV0YXRlPFxuICBBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFthbnksIHt9XVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgfCBbe31dLFxuICBSID0gYW55LFxuPiA9ICh0aGlzOiBSZXN0SW5zdGFuY2UsIC4uLmFyZ3M6IEEpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIEZldGNoR2V0PEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnldLCBSID0gYW55PiA9IChcbiAgdGhpczogUmVzdEluc3RhbmNlLFxuICAuLi5hcmdzOiBBXG4pID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRzPE8sIEQ+ID0ge1xuICBbSyBpbiBrZXlvZiBPIHwga2V5b2YgRF06IEsgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPW0tdLCB1bmRlZmluZWQ+XG4gIDogRFtFeHRyYWN0PEssIGtleW9mIEQ+XTtcbn07XG5cbmV4cG9ydCB0eXBlIEdldEVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHNjaGVtYTogU2NoZW1hO1xuICB9LFxuPiA9IFJlc3RUeXBlTm9Cb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICBPWydzY2hlbWEnXSxcbiAgdHJ1ZSxcbiAgT1snYm9keSddLFxuICBhbnksXG4gIE8gJiB7IGJvZHk6IGFueTsgbWV0aG9kOiAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyB9XG4+O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCB1bmRlZmluZWQgfCB0cnVlPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55PlxuICBleHRlbmRzIFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yIHtcbiAgbmV3IDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55Pih7XG4gICAgbWV0aG9kLFxuICAgIHNpZGVFZmZlY3QsXG4gICAgbmFtZSxcbiAgICAuLi5vcHRpb25zXG4gIH06IFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9uczxPPiAmIFJlYWRvbmx5PE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIHwgW2FueSwge31dXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB0cnVlLFxuICBPWydib2R5J10sXG4gIGFueSxcbiAgTyAmIHsgYm9keTogYW55OyBtZXRob2Q6ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnIH1cbj47XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE9ubHlPcHRpb25hbDxTIGV4dGVuZHMgc3RyaW5nPiA9IFMgZXh0ZW5kcyBgJHtpbmZlciBLfT9gID8gSyA6IG5ldmVyO1xudHlwZSBPbmx5UmVxdWlyZWQ8UyBleHRlbmRzIHN0cmluZz4gPSBTIGV4dGVuZHMgYCR7c3RyaW5nfT9gID8gbmV2ZXIgOiBTO1xuXG4vKiogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIGtleXMgZm9yIGEgcGF0aCBzdHJpbmcgKi9cbmV4cG9ydCB0eXBlIFBhdGhLZXlzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBBfVxcXFw6JHtpbmZlciBCfWAgPyBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXD8ke2luZmVyIEJ9YCA/IFBhdGhLZXlzPEE+IHwgUGF0aEtleXM8Qj5cbiAgOiBQYXRoU3BsaXRzPFM+O1xuXG50eXBlIFBhdGhTcGxpdHM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBTIGV4dGVuZHMgYCR7c3RyaW5nfToke2luZmVyIEt9JHsnLycgfCAnLCcgfCAnJScgfCAnJid9JHtpbmZlciBSfWAgP1xuICAgIFBhdGhTcGxpdHM8YDoke0t9YD4gfCBQYXRoU3BsaXRzPFI+XG4gIDogUyBleHRlbmRzIGAke3N0cmluZ306JHtpbmZlciBLfToke2luZmVyIFJ9YCA/XG4gICAgUGF0aFNwbGl0czxgOiR7S31gPiB8IFBhdGhTcGxpdHM8YDoke1J9YD5cbiAgOiBTIGV4dGVuZHMgYCR7c3RyaW5nfToke2luZmVyIEt9YCA/IEtcbiAgOiBuZXZlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIE9ubHlPcHRpb25hbDxLPl0/OiBzdHJpbmcgfCBudW1iZXI7XG59ICYgKE9ubHlSZXF1aXJlZDxLZXk+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICB9KTtcblxuZXhwb3J0IHR5cGUgUGF0aEFyZ3NBbmRTZWFyY2g8UyBleHRlbmRzIHN0cmluZz4gPVxuICBPbmx5UmVxdWlyZWQ8UGF0aEtleXM8Uz4+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4gIDoge1xuICAgICAgW0sgaW4gUGF0aEtleXM8Uz4gYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuXG4vKiogUmVtb3ZlcyB0aGUgbGFzdCA6dG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Db2xvbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogJyc7XG5cbnR5cGUgVHJpbUNvbG9uPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBSfTpgID8gUlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlUGF0aCA9IHN0cmluZzsgLy8gYCR7c3RyaW5nfToke3N0cmluZ31gOyBUT0RPOiBNYXliZSBkbyB0aGlzIGluIHRoZSBmdXR1cmU/IFNlZW1zIHRvIGhhcmQgdG8gdW5kZXJzdGFuZCBmb3Igbm93XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE9ubHlPcHRpb25hbDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgJHtpbmZlciBLfX0/YCA/IEtcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgS30/YCA/IEtcbiAgOiBuZXZlcjtcbnR5cGUgT25seVJlcXVpcmVkPFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGAke3N0cmluZ30/YCA/IG5ldmVyIDogUztcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbi8qKiBDb21wdXRlcyB0aGUgdW5pb24gb2Yga2V5cyBmb3IgYSBwYXRoIHN0cmluZyAqL1xuZXhwb3J0IHR5cGUgUGF0aEtleXM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJz8nIHwgJysnIHwgJyonIHwgJ3snIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogUGF0aFNwbGl0czxTPjtcblxudHlwZSBQYXRoU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIChcbiAgICBgJHtzdHJpbmd9OiR7aW5mZXIgS30keycvJyB8ICcsJyB8ICclJyB8ICcmJyB8ICcrJyB8ICcqJyB8ICd7J30ke2luZmVyIFJ9YFxuICApID9cbiAgICBQYXRoU3BsaXRzPGA6JHtLfWA+IHwgUGF0aFNwbGl0czxSPlxuICA6IFMgZXh0ZW5kcyBgJHtzdHJpbmd9OiR7aW5mZXIgS306JHtpbmZlciBSfWAgP1xuICAgIFBhdGhTcGxpdHM8YDoke0t9YD4gfCBQYXRoU3BsaXRzPGA6JHtSfWA+XG4gIDogUyBleHRlbmRzIGAke3N0cmluZ306JHtpbmZlciBLfWAgPyBLXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIE9ubHlPcHRpb25hbDxLPl0/OiBzdHJpbmcgfCBudW1iZXI7XG59ICYgKE9ubHlSZXF1aXJlZDxLZXk+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICB9KTtcblxuZXhwb3J0IHR5cGUgUGF0aEFyZ3NBbmRTZWFyY2g8UyBleHRlbmRzIHN0cmluZz4gPVxuICBPbmx5UmVxdWlyZWQ8UGF0aEtleXM8Uz4+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4gIDoge1xuICAgICAgW0sgaW4gUGF0aEtleXM8Uz4gYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuXG4vKiogUmVtb3ZlcyB0aGUgbGFzdCA6dG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Db2xvbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogJyc7XG5cbnR5cGUgVHJpbUNvbG9uPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBSfTpgID8gUlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlUGF0aCA9IHN0cmluZzsgLy8gYCR7c3RyaW5nfToke3N0cmluZ31gOyBUT0RPOiBNYXliZSBkbyB0aGlzIGluIHRoZSBmdXR1cmU/IFNlZW1zIHRvIGhhcmQgdG8gdW5kZXJzdGFuZCBmb3Igbm93XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -221,14 +221,20 @@ export interface RestEndpointOptions<F extends FetchFunction = FetchFunction, S
221
221
  export type RestEndpointConstructorOptions<O extends RestGenerics = any> = RestEndpointOptions<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
222
222
  sideEffect: true;
223
223
  } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, O['schema']>;
224
- export interface RestEndpointConstructor {
225
- new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
224
+ /** Simplifies endpoint definitions that follow REST patterns
225
+ *
226
+ * @see https://dataclient.io/rest/api/RestEndpoint
227
+ */
228
+ export interface RestEndpoint<O extends RestGenerics = any> extends RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
229
+ sideEffect: true;
230
+ } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
231
+ method: O extends {
226
232
  sideEffect: true;
227
- } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
228
- method: O extends {
229
- sideEffect: true;
230
- } ? 'POST' : 'GET';
231
- }>;
233
+ } ? 'POST' : 'GET';
234
+ }> {
235
+ }
236
+ export interface RestEndpointConstructor {
237
+ new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestEndpoint<O>;
232
238
  readonly prototype: RestInstanceBase;
233
239
  }
234
240
  export type MethodToSide<M> = M extends string ? M extends 'GET' ? undefined : true : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"RestEndpointTypes.d.ts","sourceRoot":"","sources":["../src/RestEndpointTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RestEndpointTypes.d.ts","sourceRoot":"","sources":["../src/RestEndpointTypes.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCB1bmRlZmluZWQgfCB0cnVlPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3RvciB7XG4gIG5ldyA8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4oe1xuICAgIG1ldGhvZCxcbiAgICBzaWRlRWZmZWN0LFxuICAgIG5hbWUsXG4gICAgLi4ub3B0aW9uc1xuICB9OiBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8Tz4gJiBSZWFkb25seTxPPik6IFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPjtcbiAgcmVhZG9ubHkgcHJvdG90eXBlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuXG5leHBvcnQgdHlwZSBNZXRob2RUb1NpZGU8TT4gPVxuICBNIGV4dGVuZHMgc3RyaW5nID9cbiAgICBNIGV4dGVuZHMgJ0dFVCcgP1xuICAgICAgdW5kZWZpbmVkXG4gICAgOiB0cnVlXG4gIDogdW5kZWZpbmVkO1xuXG4vKiogUmVzdEVuZHBvaW50IHR5cGVzIHNpbXBsaWZpZWQgKi9cbmV4cG9ydCB0eXBlIFJlc3RUeXBlPFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIEJvZHkgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nO1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IHBhZ2luYXRpb25GaWVsZDogc3RyaW5nIH0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4+ID0gSWZUeXBlU2NyaXB0TG9vc2VOdWxsPFxuICBSZXN0SW5zdGFuY2U8UmVzdEZldGNoPFVybFBhcmFtcywgQm9keSwgUj4sIFMsIE0sIE8+LFxuICBCb2R5IGV4dGVuZHMge30gPyBSZXN0VHlwZVdpdGhCb2R5PFVybFBhcmFtcywgUywgTSwgQm9keSwgUiwgTz5cbiAgOiBSZXN0VHlwZU5vQm9keTxVcmxQYXJhbXMsIFMsIE0sIFIsIE8+XG4+O1xuXG5leHBvcnQgdHlwZSBSZXN0VHlwZVdpdGhCb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgQm9keSA9IGFueSxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlTm9Cb2R5PFxuICBVcmxQYXJhbXMgPSBhbnksXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBTY2hlbWEgfCB1bmRlZmluZWQsXG4gIE0gZXh0ZW5kcyBib29sZWFuIHwgdW5kZWZpbmVkID0gYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgUiA9IGFueSAvKkRlbm9ybWFsaXplPFM+Ki8sXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiB1bmRlZmluZWQ7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IHVuZGVmaW5lZCB9LFxuPiA9IFJlc3RJbnN0YW5jZTxQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUj4sIFMsIE0sIE8+O1xuXG4vKiogU2ltcGxlIHBhcmFtZXRlcnMsIGFuZCBib2R5IGZldGNoIGZ1bmN0aW9ucyAqL1xuZXhwb3J0IHR5cGUgUmVzdEZldGNoPFxuICBVcmxQYXJhbXMsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gIEJvZHkgPSB7fSxcbiAgUmVzb2x2ZSA9IGFueSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIHwgUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFJlc29sdmU+XG4gIDogUGFyYW1GZXRjaE5vQm9keTxVcmxQYXJhbXMsIFJlc29sdmU+XG4+O1xuXG5leHBvcnQgdHlwZSBQYXJhbUZldGNoV2l0aEJvZHk8UCwgQiA9IHt9LCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFAsIGJvZHk6IEIpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hOb0JvZHk8UCwgUiA9IGFueT4gPVxuICAvLyB3ZSBtdXN0IGFsd2F5cyBhbGxvdyB1bmRlZmluZWQgaW4gYSB1bmlvbiBhbmQgZ2l2ZSBpdCBhIHR5cGUgd2l0aG91dCBwYXJhbXNcbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+XG4gIDogLy8gZXZlbiB3aXRoIGxvb3NlIG51bGwsIHRoaXMgd2lsbCBvbmx5IGJlIHRydWUgd2hlbiBhbGwgbWVtYmVycyBhcmUgb3B0aW9uYWxcbiAge30gZXh0ZW5kcyBQID9cbiAgICAvLyB0aGlzIHNhZmVseSBoYW5kbGVzIFBhdGhBcmdzIHdpdGggbm8gbWVtYmVycyB0aGF0IHJlc3VsdHMgaW4gYSBzaW1wbGUgYHVua25vd25gIHR5cGVcbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgICA6IHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj4pXG4gICAgICB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPilcbiAgOiAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQKSA9PiBQcm9taXNlPFI+O1xuXG4vLyBzYW1lIGFsZ29yaXRobSwgYnV0IGZvciBBcmdzIChha2EgcmVhZG9ubHkgYW55W10pXG5leHBvcnQgdHlwZSBQYXJhbVRvQXJnczxQPiA9XG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyBbXVxuICA6IHt9IGV4dGVuZHMgUCA/XG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgIFtdXG4gICAgOiBbXSB8IFtQXVxuICA6IFtQXTtcblxudHlwZSBJZlR5cGVTY3JpcHRMb29zZU51bGw8WSwgTj4gPSAxIHwgdW5kZWZpbmVkIGV4dGVuZHMgMSA/IFkgOiBOO1xuXG5leHBvcnQgdHlwZSBLZXlvZlJlc3RFbmRwb2ludCA9IGtleW9mIFJlc3RJbnN0YW5jZTtcblxuZXhwb3J0IHR5cGUgRnJvbUZhbGxCYWNrPEsgZXh0ZW5kcyBrZXlvZiBFLCBPLCBFPiA9XG4gIEsgZXh0ZW5kcyBrZXlvZiBPID8gT1tLXSA6IEVbS107XG5cbmV4cG9ydCB0eXBlIEZldGNoTXV0YXRlPFxuICBBIGV4dGVuZHMgcmVhZG9ubHkgYW55W10gPSAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFthbnksIHt9XVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgfCBbe31dLFxuICBSID0gYW55LFxuPiA9ICh0aGlzOiBSZXN0SW5zdGFuY2UsIC4uLmFyZ3M6IEEpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIEZldGNoR2V0PEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnldLCBSID0gYW55PiA9IChcbiAgdGhpczogUmVzdEluc3RhbmNlLFxuICAuLi5hcmdzOiBBXG4pID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCB0eXBlIERlZmF1bHRzPE8sIEQ+ID0ge1xuICBbSyBpbiBrZXlvZiBPIHwga2V5b2YgRF06IEsgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPW0tdLCB1bmRlZmluZWQ+XG4gIDogRFtFeHRyYWN0PEssIGtleW9mIEQ+XTtcbn07XG5cbmV4cG9ydCB0eXBlIEdldEVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICByZWFkb25seSBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHNjaGVtYTogU2NoZW1hO1xuICB9LFxuPiA9IFJlc3RUeXBlTm9Cb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICBPWydzY2hlbWEnXSxcbiAgdHJ1ZSxcbiAgT1snYm9keSddLFxuICBhbnksXG4gIE8gJiB7IGJvZHk6IGFueTsgbWV0aG9kOiAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyB9XG4+O1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIEVuZHBvaW50IHRvIGFwcGVuZCB0aGUgbmV4dCBwYWdlIGV4dGVuZGluZyBhIGxpc3QgZm9yIHBhZ2luYXRpb25cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFBhZ2VcbiAgICovXG4gIGdldFBhZ2U6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1sncGFnaW5hdGlvbkZpZWxkJ10gZXh0ZW5kcyBzdHJpbmcgP1xuICAgICAgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gICAgICAgIEYgJiB7IHNjaGVtYTogUzsgc2lkZUVmZmVjdDogTSB9ICYgTyxcbiAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgID5cbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcbiAgLyoqIEVuZHBvaW50IHRoYXQgcHVzaGVzIChwbGFjZSBhdCBlbmQpIGEgbmV3bHkgY3JlYXRlZCBlbnRpdHkgdG8gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwdXNoXG4gICAqL1xuICBwdXNoOiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+WydwdXNoJ10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIEVuZHBvaW50IHRoYXQgdW5zaGlmdHMgKHBsYWNlIGF0IHN0YXJ0KSBhIG5ld2x5IGNyZWF0ZWQgZW50aXR5IHRvIHRoaXMgQ29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdW5zaGlmdFxuICAgKi9cbiAgdW5zaGlmdDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsndW5zaGlmdCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBFbmRwb2ludCB0aGF0IGFzc2lnbnMgbmV3bHkgY3JlYXRlZCBlbnRpdGllcyB0byB0aGVpciByZXNwZWN0aXZlIGtleXMgaW4gdGhpcyBDb2xsZWN0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNhc3NpZ25cbiAgICovXG4gIGFzc2lnbjogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPixcbiAgICBFeGNsdWRlPE8sICdib2R5JyB8ICdtZXRob2QnPiAmIHtcbiAgICAgIGJvZHk6IFJlY29yZDxzdHJpbmcsIE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+PiB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdEVuZHBvaW50RXh0ZW5kT3B0aW9uczxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHBhdGg/OiBzdHJpbmc7IHNjaGVtYT86IFNjaGVtYTsgbWV0aG9kPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9IFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gIE9wdGlvbnNUb0Z1bmN0aW9uPE8sIEUsIEY+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NjaGVtYSddLCBTY2hlbWEgfCB1bmRlZmluZWQ+XG4gIDogRVsnc2NoZW1hJ11cbj4gJlxuICBQYXJ0aWFsPFxuICAgIE9taXQ8XG4gICAgICBFLFxuICAgICAgS2V5b2ZSZXN0RW5kcG9pbnQgfCBrZXlvZiBQYXJ0aWFsUmVzdEdlbmVyaWNzIHwga2V5b2YgUmVzdEVuZHBvaW50T3B0aW9uc1xuICAgID5cbiAgPjtcblxudHlwZSBPcHRpb25zVG9SZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSAmIHsgYm9keT86IGFueTsgcGFnaW5hdGlvbkZpZWxkPzogc3RyaW5nIH0sXG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uLFxuPiA9XG4gICdwYXRoJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE8gOiBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID5cbiAgOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCB1bmRlZmluZWQgfCB0cnVlPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBFLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFeHRyYWN0PEVbJ3BhZ2luYXRpb25GaWVsZCddLCBzdHJpbmc+O1xuICAgICAgfVxuICAgID5cbiAgOiBSZXN0SW5zdGFuY2U8XG4gICAgICBGLFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdwYXRoJyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPlxuICAgICAgICA6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IEVbJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEVbJ3BhZ2luYXRpb25GaWVsZCddO1xuICAgICAgfVxuICAgID47XG5cbmV4cG9ydCB0eXBlIFJlc3RFeHRlbmRlZEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGdldFBhZ2U/OiB1bmtub3duIH0sXG4+ID0gT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPLFxuICBFICZcbiAgICAoRSBleHRlbmRzIHsgZ2V0UGFnZTogeyBwYWdpbmF0aW9uRmllbGQ6IHN0cmluZyB9IH0gP1xuICAgICAgeyBwYWdpbmF0aW9uRmllbGQ6IEVbJ2dldFBhZ2UnXVsncGFnaW5hdGlvbkZpZWxkJ10gfVxuICAgIDogdW5rbm93biksXG4gIFJlc3RJbnN0YW5jZTxcbiAgICAoXG4gICAgICAuLi5hcmdzOiBQYXJhbWV0ZXJzPEU+XG4gICAgKSA9PiBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFByb21pc2U8UmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+PlxuICAgIDogUmV0dXJuVHlwZTxFPixcbiAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4gOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaE5vQm9keTxcbiAgICB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXSAmXG4gICAgICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgUmVzb2x2ZVR5cGU8RT5cbiAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7IFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0gJiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgfVxuPiAmIHsgcGFnaW5hdGlvbkZpZWxkOiBDIH07XG5leHBvcnQgdHlwZSBBZGRFbmRwb2ludDxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICB9ID0geyBwYXRoOiBzdHJpbmc7IGJvZHk6IGFueSB9LFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFJlc3RGZXRjaDxcbiAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BPU1QnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddXG4gICAgICAgIDogTyBleHRlbmRzIHsgc2lkZUVmZmVjdDogdHJ1ZSB9ID8gJ1BPU1QnXG4gICAgICAgIDogJ0dFVCdcbiAgICAgID4sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPlxuICAgICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICAgID4sXG4gICAgT1snc2NoZW1hJ11cbiAgPjtcblxuLyoqIFNpbXBsaWZpZXMgZW5kcG9pbnQgZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cgUkVTVCBwYXR0ZXJuc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55PlxuICBleHRlbmRzIFJlc3RJbnN0YW5jZTxcbiAgICBSZXN0RmV0Y2g8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogdW5kZWZpbmVkLFxuICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gPyBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgdW5kZWZpbmVkIHwgdHJ1ZT5cbiAgICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICAgIDogTyAmIHtcbiAgICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICAgIH1cbiAgPiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yIHtcbiAgbmV3IDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55Pih7XG4gICAgbWV0aG9kLFxuICAgIHNpZGVFZmZlY3QsXG4gICAgbmFtZSxcbiAgICAuLi5vcHRpb25zXG4gIH06IFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9uczxPPiAmIFJlYWRvbmx5PE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9ICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIHwgW2FueSwge31dXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgICB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB0cnVlLFxuICBPWydib2R5J10sXG4gIGFueSxcbiAgTyAmIHsgYm9keTogYW55OyBtZXRob2Q6ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnIH1cbj47XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,10 +1,10 @@
1
- type OnlyOptional<S extends string> = S extends `${infer K}?` ? K : never;
1
+ type OnlyOptional<S extends string> = S extends `${infer K}}?` ? K : S extends `${infer K}?` ? K : never;
2
2
  type OnlyRequired<S extends string> = S extends `${string}?` ? never : S;
3
- /** Computes the union of keys for a path string */
4
- export type PathKeys<S extends string> = string extends S ? string : S extends `${infer A}\\:${infer B}` ? PathKeys<A> | PathKeys<B> : S extends `${infer A}\\?${infer B}` ? PathKeys<A> | PathKeys<B> : PathSplits<S>;
5
- type PathSplits<S extends string> = S extends `${string}:${infer K}${'/' | ',' | '%' | '&'}${infer R}` ? PathSplits<`:${K}`> | PathSplits<R> : S extends `${string}:${infer K}:${infer R}` ? PathSplits<`:${K}`> | PathSplits<`:${R}`> : S extends `${string}:${infer K}` ? K : never;
6
3
  /** Parameters for a given path */
7
4
  export type PathArgs<S extends string> = PathKeys<S> extends never ? unknown : KeysToArgs<PathKeys<S>>;
5
+ /** Computes the union of keys for a path string */
6
+ export type PathKeys<S extends string> = string extends S ? string : S extends `${infer A}\\${':' | '?' | '+' | '*' | '{' | '}'}${infer B}` ? PathKeys<A> | PathKeys<B> : PathSplits<S>;
7
+ type PathSplits<S extends string> = S extends (`${string}:${infer K}${'/' | ',' | '%' | '&' | '+' | '*' | '{'}${infer R}`) ? PathSplits<`:${K}`> | PathSplits<R> : S extends `${string}:${infer K}:${infer R}` ? PathSplits<`:${K}`> | PathSplits<`:${R}`> : S extends `${string}:${infer K}` ? K : never;
8
8
  export type KeysToArgs<Key extends string> = {
9
9
  [K in Key as OnlyOptional<K>]?: string | number;
10
10
  } & (OnlyRequired<Key> extends never ? unknown : {
@@ -1 +1 @@
1
- {"version":3,"file":"pathTypes.d.ts","sourceRoot":"","sources":["../src/pathTypes.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1E,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;AAEzE,mDAAmD;AACnD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IACnC,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAC/D,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAC/D,UAAU,CAAC,CAAC,CAAC,CAAC;AAElB,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAC9B,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,GAChE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GACnC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GACzC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,GACpC,KAAK,CAAC;AAEV,kCAAkC;AAClC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IACnC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAEvB,OAAO,GACP,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,MAAM,IAAI;KAC1C,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,OAAO,GAC5C;KACG,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;CAC/C,CAAC,CAAC;AAEL,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,GACrD;KACG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;CACvD,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAExC,8BAA8B;AAC9B,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IACtC,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GACvE,EAAE,CAAC;AAEP,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAC7B,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAC3B,CAAC,CAAC;AAEN,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"pathTypes.d.ts","sourceRoot":"","sources":["../src/pathTypes.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAChC,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAC1B,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAC3B,KAAK,CAAC;AACV,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;AAEzE,kCAAkC;AAClC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IACnC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAEvB,OAAO,GACP,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,mDAAmD;AACnD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,IACnC,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,GACtE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GACzB,UAAU,CAAC,CAAC,CAAC,CAAC;AAElB,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAC9B,CAAC,SAAS,CACR,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,CAC3E,GACC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GACnC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC3C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GACzC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,GACpC,KAAK,CAAC;AAEV,MAAM,MAAM,UAAU,CAAC,GAAG,SAAS,MAAM,IAAI;KAC1C,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAChD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,OAAO,GAC5C;KACG,CAAC,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;CAC/C,CAAC,CAAC;AAEL,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GAAG,SAAS,GACrD;KACG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM;CACvD,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAExC,8BAA8B;AAC9B,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IACtC,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GACvE,EAAE,CAAC;AAEP,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAC7B,MAAM,SAAS,CAAC,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,GAC3B,CAAC,CAAC;AAEN,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
package/lib/pathTypes.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE9ubHlPcHRpb25hbDxTIGV4dGVuZHMgc3RyaW5nPiA9IFMgZXh0ZW5kcyBgJHtpbmZlciBLfT9gID8gSyA6IG5ldmVyO1xudHlwZSBPbmx5UmVxdWlyZWQ8UyBleHRlbmRzIHN0cmluZz4gPSBTIGV4dGVuZHMgYCR7c3RyaW5nfT9gID8gbmV2ZXIgOiBTO1xuXG4vKiogQ29tcHV0ZXMgdGhlIHVuaW9uIG9mIGtleXMgZm9yIGEgcGF0aCBzdHJpbmcgKi9cbmV4cG9ydCB0eXBlIFBhdGhLZXlzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBBfVxcXFw6JHtpbmZlciBCfWAgPyBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXD8ke2luZmVyIEJ9YCA/IFBhdGhLZXlzPEE+IHwgUGF0aEtleXM8Qj5cbiAgOiBQYXRoU3BsaXRzPFM+O1xuXG50eXBlIFBhdGhTcGxpdHM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBTIGV4dGVuZHMgYCR7c3RyaW5nfToke2luZmVyIEt9JHsnLycgfCAnLCcgfCAnJScgfCAnJid9JHtpbmZlciBSfWAgP1xuICAgIFBhdGhTcGxpdHM8YDoke0t9YD4gfCBQYXRoU3BsaXRzPFI+XG4gIDogUyBleHRlbmRzIGAke3N0cmluZ306JHtpbmZlciBLfToke2luZmVyIFJ9YCA/XG4gICAgUGF0aFNwbGl0czxgOiR7S31gPiB8IFBhdGhTcGxpdHM8YDoke1J9YD5cbiAgOiBTIGV4dGVuZHMgYCR7c3RyaW5nfToke2luZmVyIEt9YCA/IEtcbiAgOiBuZXZlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIE9ubHlPcHRpb25hbDxLPl0/OiBzdHJpbmcgfCBudW1iZXI7XG59ICYgKE9ubHlSZXF1aXJlZDxLZXk+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICB9KTtcblxuZXhwb3J0IHR5cGUgUGF0aEFyZ3NBbmRTZWFyY2g8UyBleHRlbmRzIHN0cmluZz4gPVxuICBPbmx5UmVxdWlyZWQ8UGF0aEtleXM8Uz4+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4gIDoge1xuICAgICAgW0sgaW4gUGF0aEtleXM8Uz4gYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuXG4vKiogUmVtb3ZlcyB0aGUgbGFzdCA6dG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Db2xvbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogJyc7XG5cbnR5cGUgVHJpbUNvbG9uPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBSfTpgID8gUlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlUGF0aCA9IHN0cmluZzsgLy8gYCR7c3RyaW5nfToke3N0cmluZ31gOyBUT0RPOiBNYXliZSBkbyB0aGlzIGluIHRoZSBmdXR1cmU/IFNlZW1zIHRvIGhhcmQgdG8gdW5kZXJzdGFuZCBmb3Igbm93XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE9ubHlPcHRpb25hbDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgJHtpbmZlciBLfX0/YCA/IEtcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgS30/YCA/IEtcbiAgOiBuZXZlcjtcbnR5cGUgT25seVJlcXVpcmVkPFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGAke3N0cmluZ30/YCA/IG5ldmVyIDogUztcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbi8qKiBDb21wdXRlcyB0aGUgdW5pb24gb2Yga2V5cyBmb3IgYSBwYXRoIHN0cmluZyAqL1xuZXhwb3J0IHR5cGUgUGF0aEtleXM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJz8nIHwgJysnIHwgJyonIHwgJ3snIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogUGF0aFNwbGl0czxTPjtcblxudHlwZSBQYXRoU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIChcbiAgICBgJHtzdHJpbmd9OiR7aW5mZXIgS30keycvJyB8ICcsJyB8ICclJyB8ICcmJyB8ICcrJyB8ICcqJyB8ICd7J30ke2luZmVyIFJ9YFxuICApID9cbiAgICBQYXRoU3BsaXRzPGA6JHtLfWA+IHwgUGF0aFNwbGl0czxSPlxuICA6IFMgZXh0ZW5kcyBgJHtzdHJpbmd9OiR7aW5mZXIgS306JHtpbmZlciBSfWAgP1xuICAgIFBhdGhTcGxpdHM8YDoke0t9YD4gfCBQYXRoU3BsaXRzPGA6JHtSfWA+XG4gIDogUyBleHRlbmRzIGAke3N0cmluZ306JHtpbmZlciBLfWAgPyBLXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIE9ubHlPcHRpb25hbDxLPl0/OiBzdHJpbmcgfCBudW1iZXI7XG59ICYgKE9ubHlSZXF1aXJlZDxLZXk+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICB9KTtcblxuZXhwb3J0IHR5cGUgUGF0aEFyZ3NBbmRTZWFyY2g8UyBleHRlbmRzIHN0cmluZz4gPVxuICBPbmx5UmVxdWlyZWQ8UGF0aEtleXM8Uz4+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4gIDoge1xuICAgICAgW0sgaW4gUGF0aEtleXM8Uz4gYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuXG4vKiogUmVtb3ZlcyB0aGUgbGFzdCA6dG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Db2xvbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogJyc7XG5cbnR5cGUgVHJpbUNvbG9uPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBSfTpgID8gUlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlUGF0aCA9IHN0cmluZzsgLy8gYCR7c3RyaW5nfToke3N0cmluZ31gOyBUT0RPOiBNYXliZSBkbyB0aGlzIGluIHRoZSBmdXR1cmU/IFNlZW1zIHRvIGhhcmQgdG8gdW5kZXJzdGFuZCBmb3Igbm93XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-client/rest",
3
- "version": "0.12.3",
3
+ "version": "0.12.5",
4
4
  "description": "Endpoints for REST APIs",
5
5
  "homepage": "https://dataclient.io/rest",
6
6
  "repository": {
@@ -120,7 +120,9 @@
120
120
  "build": "run build:lib && run build:legacy:lib && run build:bundle",
121
121
  "dev": "run build:lib -w",
122
122
  "prepare": "run build:lib",
123
- "prepack": "run prepare && run build:bundle && run build:legacy:lib"
123
+ "prepack": "run prepare && run build:bundle && run build:legacy:lib",
124
+ "tsc:ci": "yarn g:tsc --project tsconfig.test.json",
125
+ "typecheck": "run tsc:ci"
124
126
  },
125
127
  "author": "Nathaniel Tucker <me@ntucker.me> (https://github.com/ntucker)",
126
128
  "funding": "https://github.com/sponsors/ntucker",
@@ -446,13 +446,12 @@ export type RestEndpointConstructorOptions<O extends RestGenerics = any> =
446
446
  O['schema']
447
447
  >;
448
448
 
449
- export interface RestEndpointConstructor {
450
- new <O extends RestGenerics = any>({
451
- method,
452
- sideEffect,
453
- name,
454
- ...options
455
- }: RestEndpointConstructorOptions<O> & Readonly<O>): RestInstance<
449
+ /** Simplifies endpoint definitions that follow REST patterns
450
+ *
451
+ * @see https://dataclient.io/rest/api/RestEndpoint
452
+ */
453
+ export interface RestEndpoint<O extends RestGenerics = any>
454
+ extends RestInstance<
456
455
  RestFetch<
457
456
  'searchParams' extends keyof O ?
458
457
  O['searchParams'] extends undefined ?
@@ -475,7 +474,15 @@ export interface RestEndpointConstructor {
475
474
  : O & {
476
475
  method: O extends { sideEffect: true } ? 'POST' : 'GET';
477
476
  }
478
- >;
477
+ > {}
478
+
479
+ export interface RestEndpointConstructor {
480
+ new <O extends RestGenerics = any>({
481
+ method,
482
+ sideEffect,
483
+ name,
484
+ ...options
485
+ }: RestEndpointConstructorOptions<O> & Readonly<O>): RestEndpoint<O>;
479
486
  readonly prototype: RestInstanceBase;
480
487
  }
481
488
 
@@ -2,7 +2,7 @@ import { Entity, schema } from '@data-client/endpoint';
2
2
  import { useController } from '@data-client/react';
3
3
  import { useSuspense } from '@data-client/react';
4
4
  import { CacheProvider } from '@data-client/react';
5
- import { Article, CoolerArticle, CoolerArticleResource } from '__tests__/new';
5
+ import { CoolerArticle, CoolerArticleResource } from '__tests__/new';
6
6
  import nock from 'nock';
7
7
 
8
8
  import { makeRenderDataClient } from '../../../test';
package/src/pathTypes.ts CHANGED
@@ -1,28 +1,33 @@
1
- type OnlyOptional<S extends string> = S extends `${infer K}?` ? K : never;
1
+ type OnlyOptional<S extends string> =
2
+ S extends `${infer K}}?` ? K
3
+ : S extends `${infer K}?` ? K
4
+ : never;
2
5
  type OnlyRequired<S extends string> = S extends `${string}?` ? never : S;
3
6
 
7
+ /** Parameters for a given path */
8
+ export type PathArgs<S extends string> =
9
+ PathKeys<S> extends never ?
10
+ // unknown is identity for intersection ('&')
11
+ unknown
12
+ : KeysToArgs<PathKeys<S>>;
13
+
4
14
  /** Computes the union of keys for a path string */
5
15
  export type PathKeys<S extends string> =
6
16
  string extends S ? string
7
- : S extends `${infer A}\\:${infer B}` ? PathKeys<A> | PathKeys<B>
8
- : S extends `${infer A}\\?${infer B}` ? PathKeys<A> | PathKeys<B>
17
+ : S extends `${infer A}\\${':' | '?' | '+' | '*' | '{' | '}'}${infer B}` ?
18
+ PathKeys<A> | PathKeys<B>
9
19
  : PathSplits<S>;
10
20
 
11
21
  type PathSplits<S extends string> =
12
- S extends `${string}:${infer K}${'/' | ',' | '%' | '&'}${infer R}` ?
22
+ S extends (
23
+ `${string}:${infer K}${'/' | ',' | '%' | '&' | '+' | '*' | '{'}${infer R}`
24
+ ) ?
13
25
  PathSplits<`:${K}`> | PathSplits<R>
14
26
  : S extends `${string}:${infer K}:${infer R}` ?
15
27
  PathSplits<`:${K}`> | PathSplits<`:${R}`>
16
28
  : S extends `${string}:${infer K}` ? K
17
29
  : never;
18
30
 
19
- /** Parameters for a given path */
20
- export type PathArgs<S extends string> =
21
- PathKeys<S> extends never ?
22
- // unknown is identity for intersection ('&')
23
- unknown
24
- : KeysToArgs<PathKeys<S>>;
25
-
26
31
  export type KeysToArgs<Key extends string> = {
27
32
  [K in Key as OnlyOptional<K>]?: string | number;
28
33
  } & (OnlyRequired<Key> extends never ? unknown
@@ -223,14 +223,20 @@ export interface RestEndpointOptions<F extends FetchFunction = FetchFunction, S
223
223
  export type RestEndpointConstructorOptions<O extends RestGenerics = any> = RestEndpointOptions<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
224
224
  sideEffect: true;
225
225
  } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, O['schema']>;
226
- export interface RestEndpointConstructor {
227
- new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
226
+ /** Simplifies endpoint definitions that follow REST patterns
227
+ *
228
+ * @see https://dataclient.io/rest/api/RestEndpoint
229
+ */
230
+ export interface RestEndpoint<O extends RestGenerics = any> extends RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
231
+ sideEffect: true;
232
+ } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
233
+ method: O extends {
228
234
  sideEffect: true;
229
- } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
230
- method: O extends {
231
- sideEffect: true;
232
- } ? 'POST' : 'GET';
233
- }>;
235
+ } ? 'POST' : 'GET';
236
+ }> {
237
+ }
238
+ export interface RestEndpointConstructor {
239
+ new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestEndpoint<O>;
234
240
  readonly prototype: RestInstanceBase;
235
241
  }
236
242
  export type MethodToSide<M> = M extends string ? M extends 'GET' ? undefined : true : undefined;
@@ -223,14 +223,20 @@ export interface RestEndpointOptions<F extends FetchFunction = FetchFunction, S
223
223
  export type RestEndpointConstructorOptions<O extends RestGenerics = any> = RestEndpointOptions<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
224
224
  sideEffect: true;
225
225
  } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, O['schema']>;
226
- export interface RestEndpointConstructor {
227
- new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
226
+ /** Simplifies endpoint definitions that follow REST patterns
227
+ *
228
+ * @see https://dataclient.io/rest/api/RestEndpoint
229
+ */
230
+ export interface RestEndpoint<O extends RestGenerics = any> extends RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
231
+ sideEffect: true;
232
+ } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
233
+ method: O extends {
228
234
  sideEffect: true;
229
- } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
230
- method: O extends {
231
- sideEffect: true;
232
- } ? 'POST' : 'GET';
233
- }>;
235
+ } ? 'POST' : 'GET';
236
+ }> {
237
+ }
238
+ export interface RestEndpointConstructor {
239
+ new <O extends RestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O>): RestEndpoint<O>;
234
240
  readonly prototype: RestInstanceBase;
235
241
  }
236
242
  export type MethodToSide<M> = M extends string ? M extends 'GET' ? undefined : true : undefined;
@@ -1,10 +1,10 @@
1
- type OnlyOptional<S extends string> = S extends `${infer K}?` ? K : never;
1
+ type OnlyOptional<S extends string> = S extends `${infer K}}?` ? K : S extends `${infer K}?` ? K : never;
2
2
  type OnlyRequired<S extends string> = S extends `${string}?` ? never : S;
3
- /** Computes the union of keys for a path string */
4
- export type PathKeys<S extends string> = string extends S ? string : S extends `${infer A}\\:${infer B}` ? PathKeys<A> | PathKeys<B> : S extends `${infer A}\\?${infer B}` ? PathKeys<A> | PathKeys<B> : PathSplits<S>;
5
- type PathSplits<S extends string> = S extends `${string}:${infer K}${'/' | ',' | '%' | '&'}${infer R}` ? PathSplits<`:${K}`> | PathSplits<R> : S extends `${string}:${infer K}:${infer R}` ? PathSplits<`:${K}`> | PathSplits<`:${R}`> : S extends `${string}:${infer K}` ? K : never;
6
3
  /** Parameters for a given path */
7
4
  export type PathArgs<S extends string> = PathKeys<S> extends never ? unknown : KeysToArgs<PathKeys<S>>;
5
+ /** Computes the union of keys for a path string */
6
+ export type PathKeys<S extends string> = string extends S ? string : S extends `${infer A}\\${':' | '?' | '+' | '*' | '{' | '}'}${infer B}` ? PathKeys<A> | PathKeys<B> : PathSplits<S>;
7
+ type PathSplits<S extends string> = S extends (`${string}:${infer K}${'/' | ',' | '%' | '&' | '+' | '*' | '{'}${infer R}`) ? PathSplits<`:${K}`> | PathSplits<R> : S extends `${string}:${infer K}:${infer R}` ? PathSplits<`:${K}`> | PathSplits<`:${R}`> : S extends `${string}:${infer K}` ? K : never;
8
8
  export type KeysToArgs<Key extends string> = {
9
9
  [K in Key as OnlyOptional<K>]?: string | number;
10
10
  } & (OnlyRequired<Key> extends never ? unknown : {
@@ -1,576 +0,0 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- import { Entity, schema } from '@data-client/endpoint';
3
- import { useController, useSuspense } from '@data-client/react';
4
- import { User } from '__tests__/new';
5
-
6
- import createResource from '../createResource';
7
- import RestEndpoint, { GetEndpoint, MutateEndpoint } from '../RestEndpoint';
8
-
9
- it('RestEndpoint construct and extend with typed options', () => {
10
- new RestEndpoint({
11
- path: '/todos/',
12
- getOptimisticResponse(snap, body) {
13
- return body;
14
- },
15
- schema: User,
16
- method: 'POST',
17
- });
18
- // variable/unknown number of args
19
- new RestEndpoint({
20
- path: '/todos/',
21
- searchParams: {} as { userId?: string | number } | undefined,
22
- getOptimisticResponse(snap, ...args) {
23
- return args[args.length - 1];
24
- },
25
- schema: User,
26
- method: 'POST',
27
- });
28
- new RestEndpoint({
29
- path: '/todos/:id',
30
- searchParams: {} as { userId?: string | number } | undefined,
31
- getOptimisticResponse(snap, params, body) {
32
- return body;
33
- },
34
- schema: User,
35
- method: 'POST',
36
- });
37
- new RestEndpoint({
38
- path: '/todos/:id',
39
- searchParams: {} as { userId?: string | number } | undefined,
40
- getOptimisticResponse(snap, params, body) {
41
- return body;
42
- },
43
- schema: User,
44
- method: 'POST',
45
- });
46
-
47
- const nopath = new RestEndpoint({
48
- path: '/todos/',
49
- schema: User,
50
- method: 'POST',
51
- });
52
- const somepath = new RestEndpoint({
53
- path: '/todos/:id',
54
- schema: User,
55
- method: 'POST',
56
- });
57
-
58
- nopath.extend({
59
- getOptimisticResponse(snap, body) {
60
- return body;
61
- },
62
- });
63
- nopath.extend({
64
- searchParams: {} as { userId?: string | number } | undefined,
65
- getOptimisticResponse(snap, ...args) {
66
- return args[args.length - 1];
67
- },
68
- });
69
- somepath.extend({
70
- searchParams: {} as { userId?: string | number } | undefined,
71
- getOptimisticResponse(snap, args, body) {
72
- return body;
73
- },
74
- });
75
- });
76
-
77
- it('should customize resources', () => {
78
- class Todo extends Entity {
79
- id = '';
80
- userId = 0;
81
- title = '';
82
- completed = false;
83
-
84
- static key = 'Todo';
85
- pk() {
86
- return this.id;
87
- }
88
- }
89
-
90
- const TodoResource = createResource({
91
- path: '/todos/:id',
92
- schema: Todo,
93
- });
94
- TodoResource.create.extend({
95
- searchParams: {} as { userId?: string | number } | undefined,
96
- getOptimisticResponse(snap, ...args) {
97
- return args[args.length - 1];
98
- },
99
- });
100
- const partial = TodoResource.partialUpdate.extend({
101
- getOptimisticResponse(snap, { id }, body) {
102
- return {
103
- id,
104
- ...body,
105
- };
106
- },
107
- });
108
- () => partial({ id: 5 }, { title: 'hi' });
109
- const a: MutateEndpoint<{
110
- path: '/todos/';
111
- body: Partial<Todo>;
112
- schema: typeof Todo;
113
- }> = TodoResource.create.extend({ schema: Todo }) as any;
114
- a.extend({
115
- searchParams: {} as { userId?: string | number } | undefined,
116
- getOptimisticResponse(snap, ...args) {
117
- return args[args.length - 1];
118
- },
119
- });
120
-
121
- () => useSuspense(TodoResource.getList);
122
- });
123
-
124
- // path: ['/todos', '/todos/:id', '/todos/:id?', string]
125
- it('should precisely type function arguments', () => {
126
- // path: '/todos'
127
- () => {
128
- const optionalUndefSearch = new RestEndpoint({
129
- path: '/todos',
130
- searchParams: {} as
131
- | {
132
- userId?: string | number;
133
- }
134
- | undefined,
135
- });
136
- const optionalSearch = new RestEndpoint({
137
- path: '/todos',
138
- searchParams: {} as {
139
- userId?: string | number;
140
- },
141
- });
142
- const undef = new RestEndpoint({
143
- path: '/todos',
144
- searchParams: undefined,
145
- });
146
- const requiredSearch = new RestEndpoint({
147
- path: '/todos',
148
- searchParams: {} as {
149
- userId: string | number;
150
- },
151
- });
152
- const noSearch = new RestEndpoint({
153
- path: '/todos',
154
- });
155
- () => optionalUndefSearch();
156
- () => optionalUndefSearch({});
157
- () => optionalUndefSearch({ userId: 'hi' });
158
- // @ts-expect-error
159
- () => optionalUndefSearch(5);
160
- // @ts-expect-error
161
- () => optionalUndefSearch({ userId: 'hi' }, { userId: 'hi' });
162
-
163
- () => optionalSearch();
164
- () => optionalSearch({});
165
- () => optionalSearch({ userId: 'hi' });
166
- // @ts-expect-error
167
- () => optionalSearch(5);
168
- // @ts-expect-error
169
- () => optionalSearch({ userId: 'hi' }, { userId: 'hi' });
170
-
171
- // @ts-expect-error
172
- () => requiredSearch();
173
- // @ts-expect-error
174
- () => requiredSearch({});
175
- () => requiredSearch({ userId: 'hi' });
176
- // @ts-expect-error
177
- () => requiredSearch(5);
178
- // @ts-expect-error
179
- () => requiredSearch({ userId: 'hi' }, { userId: 'hi' });
180
-
181
- () => undef();
182
- // @ts-expect-error
183
- () => undef({});
184
- // @ts-expect-error
185
- () => undef({ userId: 'hi' });
186
- // @ts-expect-error
187
- () => undef(5);
188
-
189
- () => noSearch();
190
- // @ts-expect-error
191
- () => noSearch({});
192
- // @ts-expect-error
193
- () => noSearch({ userId: 'hi' });
194
- // @ts-expect-error
195
- () => noSearch(5);
196
- };
197
- // path: '/todos/:id?'
198
- () => {
199
- const optionalUndefSearch = new RestEndpoint({
200
- path: '/todos/:id?',
201
- searchParams: {} as
202
- | {
203
- userId?: string | number;
204
- }
205
- | undefined,
206
- });
207
- const optionalSearch = new RestEndpoint({
208
- path: '/todos/:id?',
209
- searchParams: {} as {
210
- userId?: string | number;
211
- },
212
- });
213
- const undef = new RestEndpoint({
214
- path: '/todos/:id?',
215
- searchParams: undefined,
216
- });
217
- const requiredSearch = new RestEndpoint({
218
- path: '/todos/:id?',
219
- searchParams: {} as {
220
- userId: string | number;
221
- },
222
- });
223
- const noSearch = new RestEndpoint({
224
- path: '/todos/:id?',
225
- });
226
- () => optionalUndefSearch();
227
- () => optionalUndefSearch({});
228
- () => optionalUndefSearch({ id: '5' });
229
- () => optionalUndefSearch({ userId: 'hi' });
230
- () => optionalUndefSearch({ userId: 'hi', id: '5' });
231
- // @ts-expect-error
232
- () => optionalUndefSearch(5);
233
- // @ts-expect-error
234
- () => optionalUndefSearch({ userId: 'hi' }, { userId: 'hi' });
235
-
236
- () => optionalSearch();
237
- () => optionalSearch({});
238
- () => optionalSearch({ id: '5' });
239
- () => optionalSearch({ userId: 'hi' });
240
- () => optionalSearch({ userId: 'hi', id: '5' });
241
- // @ts-expect-error
242
- () => optionalSearch(5);
243
- // @ts-expect-error
244
- () => optionalSearch({ userId: 'hi' }, { userId: 'hi' });
245
-
246
- // @ts-expect-error
247
- () => requiredSearch();
248
- // @ts-expect-error
249
- () => requiredSearch({});
250
- // @ts-expect-error
251
- () => requiredSearch({ id: '5' });
252
- () => requiredSearch({ userId: 'hi' });
253
- () => requiredSearch({ userId: 'hi', id: '5' });
254
- // @ts-expect-error
255
- () => requiredSearch(5);
256
- // @ts-expect-error
257
- () => requiredSearch({ userId: 'hi' }, { userId: 'hi' });
258
-
259
- () => undef();
260
- // @ts-ignore TODO
261
- () => undef({});
262
- // @ts-ignore TODO
263
- () => undef({ id: '5' });
264
- // @ts-expect-error
265
- () => undef({ userId: 'hi' });
266
- // @ts-expect-error
267
- () => undef(5);
268
-
269
- () => noSearch();
270
- () => noSearch({});
271
- () => noSearch({ id: '5' });
272
- // @ts-expect-error
273
- () => noSearch({ userId: 'hi' });
274
- // @ts-expect-error
275
- () => noSearch(5);
276
- };
277
- // path: '/todos/:id'
278
- () => {
279
- const optionalUndefSearch = new RestEndpoint({
280
- path: '/todos/:id',
281
- searchParams: {} as
282
- | {
283
- userId?: string | number;
284
- }
285
- | undefined,
286
- });
287
- const optionalSearch = new RestEndpoint({
288
- path: '/todos/:id',
289
- searchParams: {} as {
290
- userId?: string | number;
291
- },
292
- });
293
- const undef = new RestEndpoint({
294
- path: '/todos/:id',
295
- searchParams: undefined,
296
- });
297
- const requiredSearch = new RestEndpoint({
298
- path: '/todos/:id',
299
- searchParams: {} as {
300
- userId: string | number;
301
- },
302
- });
303
- const noSearch = new RestEndpoint({
304
- path: '/todos/:id',
305
- });
306
- // @ts-expect-error
307
- () => optionalUndefSearch();
308
- () => optionalUndefSearch({ id: '5' });
309
- () => optionalUndefSearch({ id: '5', userId: 'hi' });
310
- // @ts-expect-error
311
- () => optionalUndefSearch(5);
312
- () =>
313
- // @ts-expect-error
314
- optionalUndefSearch({ id: '5', userId: 'hi' }, { id: '5', userId: 'hi' });
315
-
316
- // @ts-expect-error
317
- () => optionalSearch();
318
- () => optionalSearch({ id: '5' });
319
- () => optionalSearch({ id: '5', userId: 'hi' });
320
- // @ts-expect-error
321
- () => optionalSearch(5);
322
- // @ts-expect-error
323
- () => optionalSearch({ id: '5', userId: 'hi' }, { id: '5', userId: 'hi' });
324
-
325
- // @ts-expect-error
326
- () => requiredSearch();
327
- // @ts-expect-error
328
- () => requiredSearch({ id: '5' });
329
- () => requiredSearch({ id: '5', userId: 'hi' });
330
- // @ts-expect-error
331
- () => requiredSearch(5);
332
- // @ts-expect-error
333
- () => requiredSearch({ id: '5', userId: 'hi' }, { id: '5', userId: 'hi' });
334
-
335
- // @ts-expect-error
336
- () => undef();
337
- // @ts-expect-error
338
- () => undef({});
339
- // @ts-expect-error
340
- () => undef({ id: '5', userId: 'hi' });
341
- // @ts-expect-error
342
- () => undef(5);
343
-
344
- // @ts-expect-error
345
- () => noSearch();
346
- () => noSearch({ id: '5' });
347
- // @ts-expect-error
348
- () => noSearch({ id: '5', userId: 'hi' });
349
- // @ts-expect-error
350
- () => noSearch(5);
351
- };
352
- // path: string
353
- () => {
354
- const optionalUndefSearch = new RestEndpoint({
355
- path: '' as string,
356
- searchParams: {} as
357
- | {
358
- userId?: string | number;
359
- }
360
- | undefined,
361
- });
362
- const optionalSearch = new RestEndpoint({
363
- path: '' as string,
364
- searchParams: {} as {
365
- userId?: string | number;
366
- },
367
- });
368
- const undef = new RestEndpoint({
369
- path: '' as string,
370
- searchParams: undefined,
371
- });
372
- const requiredSearch = new RestEndpoint({
373
- path: '' as string,
374
- searchParams: {} as {
375
- userId: string | number;
376
- },
377
- });
378
- const noSearch = new RestEndpoint({
379
- path: '' as string,
380
- });
381
- () => optionalUndefSearch();
382
- () => optionalUndefSearch({});
383
- () => optionalUndefSearch({ id: '5' });
384
- () => optionalUndefSearch({ userId: 'hi' });
385
- () => optionalUndefSearch({ userId: 'hi', id: '5' });
386
- // @ts-expect-error
387
- () => optionalUndefSearch(5);
388
- // @ts-expect-error
389
- () => optionalUndefSearch({ userId: 'hi' }, { userId: 'hi' });
390
-
391
- () => optionalSearch();
392
- () => optionalSearch({});
393
- () => optionalSearch({ id: '5' });
394
- () => optionalSearch({ userId: 'hi' });
395
- () => optionalSearch({ userId: 'hi', id: '5' });
396
- // @ts-expect-error
397
- () => optionalSearch(5);
398
- // @ts-expect-error
399
- () => optionalSearch({ userId: 'hi' }, { userId: 'hi' });
400
-
401
- // @ts-expect-error
402
- () => requiredSearch();
403
- // @ts-expect-error
404
- () => requiredSearch({});
405
- // @ts-expect-error
406
- () => requiredSearch({ id: '5' });
407
- () => requiredSearch({ userId: 'hi' });
408
- () => requiredSearch({ userId: 'hi', id: '5' });
409
- // @ts-expect-error
410
- () => requiredSearch(5);
411
- // @ts-expect-error
412
- () => requiredSearch({ userId: 'hi' }, { userId: 'hi' });
413
-
414
- () => undef();
415
- // @ts-ignore TODO
416
- () => undef({});
417
- // @ts-ignore TODO
418
- () => undef({ id: '5' });
419
- // @ts-expect-error
420
- () => undef(5);
421
-
422
- () => noSearch();
423
- () => noSearch({});
424
- () => noSearch({ id: '5' });
425
- () => noSearch({ userId: 'hi' });
426
- // @ts-expect-error
427
- () => noSearch(5);
428
- };
429
- });
430
-
431
- it('should allow sideEffect overrides', () => {
432
- () => {
433
- const getEth = new RestEndpoint({
434
- urlPrefix: 'https://rpc.ankr.com',
435
- path: '/eth',
436
- method: 'POST',
437
- body: {} as {
438
- jsonrpc: string;
439
- id: number;
440
- method: string;
441
- params: any[];
442
- },
443
- pollFrequency: 30 * 1000,
444
- sideEffect: undefined,
445
- });
446
- const getEthExtend = new RestEndpoint({
447
- urlPrefix: 'https://rpc.ankr.com',
448
- path: '/eth',
449
- method: 'POST',
450
- body: {} as {
451
- jsonrpc: string;
452
- id: number;
453
- method: string;
454
- params: any[];
455
- },
456
- pollFrequency: 30 * 1000,
457
- }).extend({ sideEffect: undefined });
458
-
459
- const a: undefined = getEth.sideEffect;
460
- const b: undefined = getEthExtend.sideEffect;
461
- () => {
462
- const ctrl = useController();
463
- ctrl.fetch(getEth, {
464
- jsonrpc: '2.0',
465
- id: 1,
466
- method: 'eth_getBlockByNumber',
467
- params: ['latest', true],
468
- });
469
- useSuspense(getEth, {
470
- jsonrpc: '2.0',
471
- id: 1,
472
- method: 'eth_getBlockByNumber',
473
- params: ['latest', true],
474
- });
475
- // @ts-expect-error
476
- ctrl.fetch(getEth, {
477
- id: 1,
478
- method: 'eth_getBlockByNumber',
479
- params: ['latest', true],
480
- });
481
- // @ts-expect-error
482
- useSuspense(getEth, {
483
- id: 1,
484
- method: 'eth_getBlockByNumber',
485
- params: ['latest', true],
486
- });
487
- // @ts-expect-error
488
- useSuspense(getEth, {
489
- jsonrpc: '2.0',
490
- id: 1,
491
- method: 6,
492
- params: ['latest', true],
493
- });
494
- useSuspense(
495
- getEth,
496
- // @ts-expect-error
497
- {},
498
- {
499
- jsonrpc: '2.0',
500
- id: 1,
501
- method: 'eth_getBlockByNumber',
502
- params: ['latest', true],
503
- },
504
- );
505
- };
506
- () => {
507
- const ctrl = useController();
508
- ctrl.fetch(getEthExtend, {
509
- jsonrpc: '2.0',
510
- id: 1,
511
- method: 'eth_getBlockByNumber',
512
- params: ['latest', true],
513
- });
514
- useSuspense(getEthExtend, {
515
- jsonrpc: '2.0',
516
- id: 1,
517
- method: 'eth_getBlockByNumber',
518
- params: ['latest', true],
519
- });
520
- // @ts-expect-error
521
- ctrl.fetch(getEthExtend, {
522
- id: 1,
523
- method: 'eth_getBlockByNumber',
524
- params: ['latest', true],
525
- });
526
- // @ts-expect-error
527
- useSuspense(getEthExtend, {
528
- id: 1,
529
- method: 'eth_getBlockByNumber',
530
- params: ['latest', true],
531
- });
532
- // @ts-expect-error
533
- useSuspense(getEthExtend, {
534
- jsonrpc: '2.0',
535
- id: 1,
536
- method: 6,
537
- params: ['latest', true],
538
- });
539
- useSuspense(
540
- getEthExtend,
541
- // @ts-expect-error
542
- {},
543
- {
544
- jsonrpc: '2.0',
545
- id: 1,
546
- method: 'eth_getBlockByNumber',
547
- params: ['latest', true],
548
- },
549
- );
550
- };
551
- };
552
- });
553
-
554
- it('should handle more open ended type definitions', () => {
555
- () => {
556
- const unknownParams = new RestEndpoint({
557
- path: '' as `${string}:${string}`,
558
- });
559
-
560
- unknownParams({ hi: 5 });
561
- unknownParams();
562
- // @ts-expect-error
563
- unknownParams(5);
564
-
565
- const explicit: GetEndpoint<{
566
- path: `${string}:${string}`;
567
- schema: schema.Collection<[typeof User]>;
568
- }> = new RestEndpoint({
569
- path: '' as `${string}:${string}`,
570
- schema: new schema.Collection([User]),
571
- });
572
- explicit({ hi: 5 });
573
- explicit.push.process({} as any, { hi: 5 });
574
- explicit.push();
575
- };
576
- });