@financialforcedev/orizuru
Version:
Streamlined communication between Heroku dynos / other worker processes
47 lines • 21.7 kB
JavaScript
;
/*
* Copyright (c) 2017-2019, FinancialForce.com, inc
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the FinancialForce.com, inc nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Handler
*/
var handler_1 = require("./index/handler");
exports.Handler = handler_1.Handler;
/**
* Publisher
*/
var publisher_1 = require("./index/publisher");
exports.Publisher = publisher_1.Publisher;
/**
* Server
*/
var server_1 = require("./index/server");
exports.Server = server_1.Server;
var express_1 = require("express");
exports.json = express_1.json;
exports.urlencoded = express_1.urlencoded;
exports.addStaticRoute = express_1.static;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7O0FBZ0JIOztHQUVHO0FBQ0gsMkNBQTBDO0FBQWpDLDRCQUFBLE9BQU8sQ0FBQTtBQUVoQjs7R0FFRztBQUNILCtDQUE4QztBQUFyQyxnQ0FBQSxTQUFTLENBQUE7QUFFbEI7O0dBRUc7QUFDSCx5Q0FBd0M7QUFBL0IsMEJBQUEsTUFBTSxDQUFBO0FBRWYsbUNBU2lCO0FBUGhCLHlCQUFBLElBQUksQ0FBQTtBQUNKLCtCQUFBLFVBQVUsQ0FBQTtBQUtWLG1DQUFBLE1BQU0sQ0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE3LTIwMTksIEZpbmFuY2lhbEZvcmNlLmNvbSwgaW5jXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sXG4gKiAgIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcbiAqXG4gKiAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAqICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci5cbiAqIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gKiAgICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuICogLSBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBGaW5hbmNpYWxGb3JjZS5jb20sIGluYyBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnNcbiAqICAgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXRcbiAqICAgICAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLlxuICpcbiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgXCJBUyBJU1wiIEFORFxuICogIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVNcbiAqICBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTFxuICogIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLFxuICogIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EU1xuICogIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWVxuICogIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKVxuICogIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICovXG5cbi8qKlxuICogRmluYW5jaWFsRm9yY2UgT3JpenVydVxuICogUmV0dXJucyB0aGUgU2VydmVyLCBIYW5kbGVyIGFuZCBQdWJsaXNoZXIgY2xhc3Nlcy5cbiAqIEBtb2R1bGUgQGZpbmFuY2lhbGZvcmNlZGV2L29yaXp1cnVcbiAqIEBzZWUgU2VydmVyXG4gKiBAc2VlIEhhbmRsZXJcbiAqIEBzZWUgUHVibGlzaGVyXG4gKi9cblxuaW1wb3J0IHsgU2NoZW1hLCBUeXBlIH0gZnJvbSAnYXZzYyc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IHsgRXJyb3JSZXF1ZXN0SGFuZGxlciwgUmVxdWVzdCwgUmVxdWVzdEhhbmRsZXIsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcblxuLyoqXG4gKiBIYW5kbGVyXG4gKi9cbmV4cG9ydCB7IEhhbmRsZXIgfSBmcm9tICcuL2luZGV4L2hhbmRsZXInO1xuXG4vKipcbiAqIFB1Ymxpc2hlclxuICovXG5leHBvcnQgeyBQdWJsaXNoZXIgfSBmcm9tICcuL2luZGV4L3B1Ymxpc2hlcic7XG5cbi8qKlxuICogU2VydmVyXG4gKi9cbmV4cG9ydCB7IFNlcnZlciB9IGZyb20gJy4vaW5kZXgvc2VydmVyJztcblxuZXhwb3J0IHtcblx0RXJyb3JSZXF1ZXN0SGFuZGxlcixcblx0anNvbixcblx0dXJsZW5jb2RlZCxcblx0UmVxdWVzdCxcblx0UmVxdWVzdEhhbmRsZXIsXG5cdFJlc3BvbnNlLFxuXHROZXh0RnVuY3Rpb24sXG5cdHN0YXRpYyBhcyBhZGRTdGF0aWNSb3V0ZVxufSBmcm9tICdleHByZXNzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuXG5cdG5hbWVzcGFjZSBFeHByZXNzIHtcblxuXHRcdGludGVyZmFjZSBSZXF1ZXN0IHtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgT3JpenVydSBjb250ZXh0IGZvciB0aGlzIHJlcXVlc3QuXG5cdFx0XHQgKi9cblx0XHRcdG9yaXp1cnU/OiBPcml6dXJ1LkNvbnRleHQ7XG5cblx0XHR9XG5cblx0fVxuXG5cdG5hbWVzcGFjZSBPcml6dXJ1IHtcblxuXHRcdC8vIFRoZXNlIG9wZW4gaW50ZXJmYWNlcyBtYXkgYmUgZXh0ZW5kZWQgaW4gYW4gYXBwbGljYXRpb24tc3BlY2lmaWMgbWFubmVyIHZpYSBkZWNsYXJhdGlvbiBtZXJnaW5nLlxuXG5cdFx0LyoqXG5cdFx0ICogVGhlIEhhbmRsZXIgaW50ZXJmYWNlIGZvciBjb25zdW1pbmcgbWVzc2FnZXMgaW4gYSB3b3JrZXIgZHlubyBjcmVhdGVkIGJ5IHtAbGluayBTZXJ2ZXJ9LlxuXHRcdCAqL1xuXHRcdGludGVyZmFjZSBJSGFuZGxlciBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIE9yaXp1cnUgSGFuZGxlciBPcHRpb25zLlxuXHRcdFx0ICovXG5cdFx0XHRvcHRpb25zOiBPcHRpb25zLklIYW5kbGVyO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIEluaXRpYWxpemVzIHRoZSBoYW5kbGVyLlxuXHRcdFx0ICovXG5cdFx0XHRpbml0KCk6IFByb21pc2U8dm9pZD47XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogSGFuZGxlcyBhbiBpbmNvbWluZyBtZXNzYWdlIGZyb20gdGhlIHRyYW5zcG9ydCBsYXllci5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0gb3B0aW9ucyBUaGUgaGFuZGxlIGZ1bmN0aW9uIG9wdGlvbnMuXG5cdFx0XHQgKi9cblx0XHRcdGhhbmRsZShvcHRpb25zOiBJSGFuZGxlckZ1bmN0aW9uKTogUHJvbWlzZTx2b2lkPjtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0IGFuIGVycm9yIGV2ZW50LlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBldmVudCBUaGUgZXJyb3IgZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGVycm9yKGV2ZW50OiBhbnkpOiB2b2lkO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIEVtaXQgYW4gaW5mbyBldmVudC5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0gZXZlbnQgVGhlIGluZm8gZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGluZm8oZXZlbnQ6IGFueSk6IHZvaWQ7XG5cblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBUaGUgUHVibGlzaGVyIGludGVyZmFjZSBmb3IgcHVibGlzaGluZyBtZXNzYWdlcyBiYXNlZCBvbiBBdnJvIHNjaGVtYXMuXG5cdFx0ICovXG5cdFx0aW50ZXJmYWNlIElQdWJsaXNoZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBPcml6dXJ1IFB1Ymxpc2hlciBPcHRpb25zLlxuXHRcdFx0ICovXG5cdFx0XHRvcHRpb25zOiBPcHRpb25zLklQdWJsaXNoZXI7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogSW5pdGlhbGl6ZXMgdGhlIHB1Ymxpc2hlci5cblx0XHRcdCAqL1xuXHRcdFx0aW5pdCgpOiBQcm9taXNlPHZvaWQ+O1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFB1Ymxpc2hlcyBhbiBpbmNvbWluZyBtZXNzYWdlIHRvIHRoZSB0cmFuc3BvcnQgbGF5ZXIuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIHB1Ymxpc2ggZnVuY3Rpb24gb3B0aW9ucy5cblx0XHRcdCAqL1xuXHRcdFx0cHVibGlzaChvcHRpb25zOiBJUHVibGlzaEZ1bmN0aW9uKTogUHJvbWlzZTxib29sZWFuPjtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0IGFuIGVycm9yIGV2ZW50LlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBldmVudCBUaGUgZXJyb3IgZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGVycm9yKGV2ZW50OiBhbnkpOiB2b2lkO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIEVtaXQgYW4gaW5mbyBldmVudC5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0gZXZlbnQgVGhlIGluZm8gZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGluZm8oZXZlbnQ6IGFueSk6IHZvaWQ7XG5cblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBUaGUgU2VydmVyIGludGVyZmFjZSBmb3IgY3JlYXRpbmcgcm91dGVzIGluIGEgd2ViIGR5bm8gYmFzZWQgb24gQXZybyBzY2hlbWFzLlxuXHRcdCAqL1xuXHRcdGludGVyZmFjZSBJU2VydmVyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgT3JpenVydSBTZXJ2ZXIgT3B0aW9ucy5cblx0XHRcdCAqL1xuXHRcdFx0b3B0aW9uczogT3B0aW9ucy5JU2VydmVyO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBwdWJsaXNoZXIgdGhhdCBpcyB1c2VkIHRvIHB1Ymxpc2ggT3JpenVydSBtZXNzYWdlcyB2aWEgdGhlIHRyYW5zcG9ydCBsYXllci5cblx0XHRcdCAqL1xuXHRcdFx0cHVibGlzaGVyOiBPcml6dXJ1LklQdWJsaXNoZXI7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIHNlcnZlciBpbXBsZW1lbnRhdGlvbi5cblx0XHRcdCAqXG5cdFx0XHQgKiBFeHByZXNzIGlzIHVzZWQgYnkgZGVmYXVsdC5cblx0XHRcdCAqL1xuXHRcdFx0c2VydmVySW1wbDogSVNlcnZlckltcGw7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQWRkcyBhIHJvdXRlIHRvIHRoZSBzZXJ2ZXIuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIHJvdXRlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblx0XHRcdCAqL1xuXHRcdFx0YWRkUm91dGUob3B0aW9uczogSVJvdXRlQ29uZmlndXJhdGlvbik6IHRoaXM7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQXNzaWducyBzZXR0aW5nIGBuYW1lYCB0byBgdmFsdWVgLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBzZXR0aW5nIFRoZSBzZXR0aW5nIG5hbWUuXG5cdFx0XHQgKiBAcGFyYW0gdmFsIFRoZSBzZXR0aW5nIHZhbHVlLlxuXHRcdFx0ICovXG5cdFx0XHRzZXQoc2V0dGluZzogc3RyaW5nLCB2YWw6IGFueSk6IHRoaXM7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVXNlIHRoZSBnaXZlbiByZXF1ZXN0IGhhbmRsZXJzIGZvciB0aGUgc3BlY2lmaWVkIHBhdGhzLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGZvciB0aGUgaW5jb21pbmcgcmVxdWVzdC5cblx0XHRcdCAqIEBwYXJhbSBoYW5kbGVycyBUaGUgbWlkZGxld2FyZSB0byBiZSB1c2VkIHdoZW4gcHJvY2Vzc2luZyB0aGUgaW5jb21pbmcgcmVxdWVzdC5cblx0XHRcdCAqL1xuXHRcdFx0dXNlKHBhdGg6IHN0cmluZywgLi4uaGFuZGxlcnM6IEFycmF5PEVycm9yUmVxdWVzdEhhbmRsZXIgfCBSZXF1ZXN0SGFuZGxlcj4pOiB0aGlzO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFN0YXJ0cyB0aGUgc2VydmVyIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMuXG5cdFx0XHQgKiBUaGlzIGFsc28gaW5pdGlhbGlzZXMgdGhlIHRyYW5zcG9ydCBjb25uZWN0aW9uLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBbY2FsbGJhY2tdIE9wdGlvbmFsIGNhbGxiYWNrIHRvIGludm9rZSBhZnRlciB0aGUgc2VydmVyIGhhcyBzdGFydGVkIGxpc3RlbmluZyB0byBjb25uZWN0aW9ucy5cblx0XHRcdCAqL1xuXHRcdFx0bGlzdGVuKGNhbGxiYWNrPzogKGFwcDogT3JpenVydS5JU2VydmVyKSA9PiB2b2lkKTogdm9pZDtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBTdG9wcyB0aGUgc2VydmVyIGZyb20gYWNjZXB0aW5nIG5ldyBjb25uZWN0aW9ucy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0gW2NhbGxiYWNrXSBPcHRpb25hbCBjYWxsYmFjayB0byBpbnZva2UgYWZ0ZXIgdGhlIHNlcnZlciBoYXMgc3RvcHBlZCBsaXN0ZW5pbmcgdG8gY29ubmVjdGlvbnMuXG5cdFx0XHQgKi9cblx0XHRcdGNsb3NlKGNhbGxiYWNrPzogKGFwcDogT3JpenVydS5JU2VydmVyKSA9PiB2b2lkKTogdm9pZDtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBFbWl0IGFuIGVycm9yIGV2ZW50LlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSBldmVudCBUaGUgZXJyb3IgZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGVycm9yKGV2ZW50OiBhbnkpOiB2b2lkO1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIEVtaXQgYW4gaW5mbyBldmVudC5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0gZXZlbnQgVGhlIGluZm8gZXZlbnQuXG5cdFx0XHQgKi9cblx0XHRcdGluZm8oZXZlbnQ6IGFueSk6IHZvaWQ7XG5cblx0XHR9XG5cblx0XHRpbnRlcmZhY2UgQ29udGV4dCB7IH1cblxuXHRcdGludGVyZmFjZSBNZXNzYWdlIHsgfVxuXG5cdFx0aW50ZXJmYWNlIElIYW5kbGVyRnVuY3Rpb24geyB9XG5cblx0XHRpbnRlcmZhY2UgSUhhbmRsZXJSZXNwb25zZSB7IH1cblxuXHRcdGludGVyZmFjZSBJUHVibGlzaEZ1bmN0aW9uIHsgfVxuXG5cdFx0aW50ZXJmYWNlIElSb3V0ZUNvbmZpZ3VyYXRpb24geyB9XG5cblx0XHRuYW1lc3BhY2UgT3B0aW9ucyB7XG5cblx0XHRcdGludGVyZmFjZSBJSGFuZGxlciB7IH1cblxuXHRcdFx0aW50ZXJmYWNlIElQdWJsaXNoZXIgeyB9XG5cblx0XHRcdGludGVyZmFjZSBJU2VydmVyIHsgfVxuXG5cdFx0fVxuXG5cdFx0Ly8gVGhlc2Ugb3BlbiBpbnRlcmZhY2VzIG1heSBiZSBleHRlbmRlZCBpbiBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBtYW5uZXIgdmlhIGRlY2xhcmF0aW9uIG1lcmdpbmcuXG5cdFx0bmFtZXNwYWNlIFRyYW5zcG9ydCB7XG5cblx0XHRcdGludGVyZmFjZSBJUHVibGlzaCB7IH1cblxuXHRcdFx0aW50ZXJmYWNlIElTdWJzY3JpYmUgeyB9XG5cdFx0fVxuXG5cdH1cblxufVxuXG4vKipcbiAqIEFuIFtBcGFjaGUgQXZyb10oaHR0cHM6Ly9hdnJvLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50LykgU2NoZW1hXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXZyb1NjaGVtYSBleHRlbmRzIFR5cGUge1xuXG5cdC8qKlxuXHQgKiBUaGUgbmFtZSBvZiB0aGUgW0FwYWNoZSBBdnJvXShodHRwczovL2F2cm8uYXBhY2hlLm9yZy9kb2NzL2N1cnJlbnQvKSBzY2hlbWEuXG5cdCAqIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBzZXQuXG5cdCAqL1xuXHRyZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVHJhbnNwb3J0IHtcblxuXHQvKipcblx0ICogQ29ubmVjdHMgdG8gdGhlIHRyYW5zcG9ydCBsYXllci5cblx0ICovXG5cdGNvbm5lY3Q6ICgpID0+IFByb21pc2U8dm9pZD47XG5cblx0LyoqXG5cdCAqIFB1Ymxpc2hlcyBhIG1lc3NhZ2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBidWZmZXIgVGhlIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIHRoZSBtZXNzYWdlIHRvIHB1Ymxpc2guXG5cdCAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHVzZSB3aGVuIHB1Ymxpc2hpbmcgdGhlIG1lc3NhZ2UuXG5cdCAqL1xuXHRwdWJsaXNoOiAoYnVmZmVyOiBCdWZmZXIsIG9wdGlvbnM6IE9yaXp1cnUuVHJhbnNwb3J0LklQdWJsaXNoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG5cdC8qKlxuXHQgKiBTdWJzY3JpYmVzIHRvIGEgbWVzc2FnZSBxdWV1ZS5cblx0ICpcblx0ICogQHBhcmFtIGhhbmRsZXIgVGhlIGhhbmRsZXIgdG8gaW52b2tlIHdoZW4gYSBtZXNzYWdlIGlzIHJlY2VpdmVkLlxuXHQgKi9cblx0c3Vic2NyaWJlOiAoaGFuZGxlcjogKGNvbnRlbnQ6IEJ1ZmZlcikgPT4gUHJvbWlzZTx2b2lkIHwgT3JpenVydS5JSGFuZGxlclJlc3BvbnNlPiwgb3B0aW9uczogT3JpenVydS5UcmFuc3BvcnQuSVN1YnNjcmliZSkgPT4gUHJvbWlzZTx2b2lkPjtcblxuXHQvKipcblx0ICogQ2xvc2VzIHRoZSB0cmFuc3BvcnQgZ3JhY2VmdWxseS5cblx0ICovXG5cdGNsb3NlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG59XG5cbi8qKlxuICogVGhlIE9yaXp1cnUgbWVzc2FnZSBzZW50IHZpYSB0aGUgdHJhbnNwb3J0IGxheWVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElPcml6dXJ1TWVzc2FnZTxDIGV4dGVuZHMgT3JpenVydS5Db250ZXh0LCBNIGV4dGVuZHMgT3JpenVydS5NZXNzYWdlPiB7XG5cblx0LyoqXG5cdCAqIFRoZSBjb250ZXh0IGZvciB0aGUgbWVzc2FnZS5cblx0ICovXG5cdGNvbnRleHQ6IEM7XG5cblx0LyoqXG5cdCAqIFRoZSBtZXNzYWdlLlxuXHQgKi9cblx0bWVzc2FnZTogTTtcblxufVxuXG4vKipcbiAqIFRoZSBzZXJ2ZXIgaW1wbGVtZW50YXRpb24uXG4gKiBCeSBkZWZhdWx0LCB3ZSB1c2UgW0V4cHJlc3NdKGh0dHBzOi8vZXhwcmVzc2pzLmNvbS8pLlxuICogVGhpcyBhbGxvd3MgdXMgdG8gZWFzaWx5IHNldCB1cCBhIG1vY2sgaW1wbGVtZW50YXRpb24gZm9yIHRlc3RpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlckltcGwge1xuXG5cdChyZXE6IFJlcXVlc3QgfCBodHRwLkluY29taW5nTWVzc2FnZSwgcmVzOiBSZXNwb25zZSB8IGh0dHAuU2VydmVyUmVzcG9uc2UpOiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBTdGFydHMgdGhlIHNlcnZlciBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zIG9uIHRoZSBnaXZlbiBwb3J0LlxuXHQgKlxuXHQgKiBAcGFyYW0gcG9ydCBUaGUgcG9ydCBudW1iZXIgdG8gbGlzdGVuIHRvIGNvbm5lY3Rpb25zIG9uLlxuXHQgKiBAcGFyYW0gW2NhbGxiYWNrXSBPcHRpb25hbCBjYWxsYmFjayB0byBpbnZva2UgYWZ0ZXIgdGhlIHNlcnZlciBoYXMgc3RhcnRlZCBsaXN0ZW5pbmcgdG8gY29ubmVjdGlvbnMuXG5cdCAqL1xuXHRsaXN0ZW4ocG9ydDogbnVtYmVyLCBjYWxsYmFjaz86IChhcHA6IHRoaXMpID0+IHZvaWQpOiBodHRwLlNlcnZlcjtcblxuXHQvKipcblx0ICogQXNzaWducyBzZXR0aW5nIGBuYW1lYCB0byBgdmFsdWVgLlxuXHQgKlxuXHQgKiBAcGFyYW0gc2V0dGluZyBUaGUgc2V0dGluZyBuYW1lLlxuXHQgKiBAcGFyYW0gdmFsIFRoZSBzZXR0aW5nIHZhbHVlLlxuXHQgKi9cblx0c2V0KHNldHRpbmc6IHN0cmluZywgdmFsOiBhbnkpOiB0aGlzO1xuXG5cdC8qKlxuXHQgKiBVc2UgdGhlIGdpdmVuIHJlcXVlc3QgaGFuZGxlcnMgZm9yIHRoZSBzcGVjaWZpZWQgcGF0aHMuXG5cdCAqXG5cdCAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGZvciB0aGUgaW5jb21pbmcgcmVxdWVzdC5cblx0ICogQHBhcmFtIGhhbmRsZXJzIFRoZSBtaWRkbGV3YXJlIHRvIGJlIHVzZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBpbmNvbWluZyByZXF1ZXN0LlxuXHQgKi9cblx0dXNlKHBhdGg6IHN0cmluZywgLi4uaGFuZGxlcnM6IEFycmF5PEVycm9yUmVxdWVzdEhhbmRsZXIgfCBSZXF1ZXN0SGFuZGxlcj4pOiB0aGlzO1xuXG59XG5cbmV4cG9ydCB0eXBlIEhhbmRsZXJGdW5jdGlvbjxDIGV4dGVuZHMgT3JpenVydS5Db250ZXh0LCBNPiA9IChtZXNzYWdlOiBJT3JpenVydU1lc3NhZ2U8QywgTT4pID0+IFByb21pc2U8dm9pZCB8IE9yaXp1cnUuSUhhbmRsZXJSZXNwb25zZT47XG5cbmV4cG9ydCB0eXBlIFJlc3BvbnNlV3JpdGVyID0gKGVycm9yOiBFcnJvciB8IHVuZGVmaW5lZCwgcmVxdWVzdDogUmVxdWVzdCwgcmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRvIHdyaXRlIGEgcmVzcG9uc2UgdG8gdGhlIGNsaWVudC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBhbHdheXMgaGFuZGxlIGVycm9ycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzcG9uc2VXcml0ZXJGdW5jdGlvbiA9IChzZXJ2ZXI6IE9yaXp1cnUuSVNlcnZlcikgPT4gUmVzcG9uc2VXcml0ZXI7XG5cbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBPcHRpb25zIHtcblxuXHRleHBvcnQgaW50ZXJmYWNlIElIYW5kbGVyIGV4dGVuZHMgT3JpenVydS5PcHRpb25zLklIYW5kbGVyIHtcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSB0cmFuc3BvcnQgbGF5ZXIgZm9yIHRoZSBoYW5kbGVyLlxuXHRcdCAqL1xuXHRcdHRyYW5zcG9ydDogSVRyYW5zcG9ydDtcblxuXHR9XG5cblx0ZXhwb3J0IGludGVyZmFjZSBJUHVibGlzaGVyIGV4dGVuZHMgT3JpenVydS5PcHRpb25zLklQdWJsaXNoZXIge1xuXG5cdFx0LyoqXG5cdFx0ICogVGhlIHRyYW5zcG9ydCBsYXllciBmb3IgdGhlIHB1Ymxpc2hlci5cblx0XHQgKi9cblx0XHR0cmFuc3BvcnQ6IElUcmFuc3BvcnQ7XG5cblx0fVxuXG5cdGV4cG9ydCBpbnRlcmZhY2UgSVNlcnZlciBleHRlbmRzIE9yaXp1cnUuT3B0aW9ucy5JU2VydmVyIHtcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBwb3J0IG9uIHdoaWNoIHRoZSBzZXJ2ZXIgc2hvdWxkIGxpc3Rlbi5cblx0XHQgKi9cblx0XHRwb3J0OiBudW1iZXI7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgc2VydmVyIGltcGxlbWVudGF0aW9uLlxuXHRcdCAqXG5cdFx0ICogRXhwcmVzcyBpcyB1c2VkIGJ5IGRlZmF1bHQuXG5cdFx0ICovXG5cdFx0c2VydmVyPzogSVNlcnZlckltcGw7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgdHJhbnNwb3J0IGxheWVyIGZvciB0aGUgc2VydmVyLlxuXHRcdCAqL1xuXHRcdHRyYW5zcG9ydDogSVRyYW5zcG9ydDtcblx0fVxuXG5cdGV4cG9ydCBpbnRlcmZhY2UgSVB1Ymxpc2hGdW5jdGlvbjxDIGV4dGVuZHMgT3JpenVydS5Db250ZXh0LCBNPiBleHRlbmRzIE9yaXp1cnUuSVB1Ymxpc2hGdW5jdGlvbiB7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgbWVzc2FnZSB0byBiZSBwdWJsaXNoZWQuXG5cdFx0ICovXG5cdFx0bWVzc2FnZTogSU9yaXp1cnVNZXNzYWdlPEMsIE0+O1xuXG5cdFx0LyoqXG5cdFx0ICogQW4gW0FwYWNoZSBBdnJvXShodHRwczovL2F2cm8uYXBhY2hlLm9yZy9kb2NzL2N1cnJlbnQvKSBzY2hlbWEuXG5cdFx0ICovXG5cdFx0c2NoZW1hOiBTY2hlbWE7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgcHVibGlzaCBvcHRpb25zIHJlcXVpcmVkIGZvciB0aGUgdHJhbnNwb3J0IGxheWVyLlxuXHRcdCAqL1xuXHRcdHB1Ymxpc2hPcHRpb25zPzogT3B0aW9ucy5UcmFuc3BvcnQuSVB1Ymxpc2g7XG5cdH1cblxuXHRleHBvcnQgaW50ZXJmYWNlIElIYW5kbGVyRnVuY3Rpb248QyBleHRlbmRzIE9yaXp1cnUuQ29udGV4dCwgTT4gZXh0ZW5kcyBPcml6dXJ1LklIYW5kbGVyRnVuY3Rpb24ge1xuXG5cdFx0LyoqXG5cdFx0ICogQW4gW0FwYWNoZSBBdnJvXShodHRwczovL2F2cm8uYXBhY2hlLm9yZy9kb2NzL2N1cnJlbnQvKSBzY2hlbWEuXG5cdFx0ICovXG5cdFx0c2NoZW1hOiBTY2hlbWE7XG5cblx0XHQvKipcblx0XHQgKiBBIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyB0aGlzIFtBcGFjaGUgQXZyb10oaHR0cHM6Ly9hdnJvLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50Lykgc2NoZW1hLlxuXHRcdCAqL1xuXHRcdGhhbmRsZXI6IEhhbmRsZXJGdW5jdGlvbjxDLCBNPjtcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBzdWJzY3JpcHRpb24gb3B0aW9ucyByZXF1aXJlZCBmb3IgdGhlIHRyYW5zcG9ydCBsYXllci5cblx0XHQgKi9cblx0XHRzdWJzY3JpYmVPcHRpb25zPzogT3B0aW9ucy5UcmFuc3BvcnQuSVN1YnNjcmliZTtcblx0fVxuXG5cdGV4cG9ydCBpbnRlcmZhY2UgSVJvdXRlQ29uZmlndXJhdGlvbiBleHRlbmRzIE9yaXp1cnUuSVJvdXRlQ29uZmlndXJhdGlvbiB7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgYmFzZSBlbmRwb2ludCBmb3IgdGhpcyByb3V0ZS5cblx0XHQgKlxuXHRcdCAqIEJ5IGRlZmF1bHQsIHRoZSB1cmwgaXMgY29uc3RydWN0ZWQgdXNpbmcgdGhlIG5hbWVwYWNlIGFuZCBuYW1lIG9mIHRoZSBBdnJvIHNjaGVtYS5cblx0XHQgKiBUaGlzIHBhcmFtZXRlciBhZGRzIGEgcHJlZml4IHRvIHRoYXQgdXJsLlxuXHRcdCAqXG5cdFx0ICogTm90ZSB0aGF0IHRoZSB0cmFuc3BvcnQgZXZlbnROYW1lIG9taXRzIHRoaXMgcGFydCBvZiB0aGUgdXJsLlxuXHRcdCAqL1xuXHRcdGVuZHBvaW50Pzogc3RyaW5nO1xuXG5cdFx0LyoqXG5cdFx0ICogVGhlIEhUVFAgbWV0aG9kIGZvciB0aGlzIHJvdXRlLlxuXHRcdCAqL1xuXHRcdG1ldGhvZD86IHN0cmluZztcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBtaWRkbGV3YXJlIGZvciB0aGlzIHJvdXRlLlxuXHRcdCAqL1xuXHRcdG1pZGRsZXdhcmU/OiBBcnJheTxFcnJvclJlcXVlc3RIYW5kbGVyIHwgUmVxdWVzdEhhbmRsZXI+O1xuXG5cdFx0LyoqXG5cdFx0ICogQSBmdW5jdGlvbiB0aGF0IG1hcHMgdGhlIHNjaGVtYSBuYW1lc3BhY2UgdG8gdGhlIHJlcXVpcmVkIGZvcm1hdC5cblx0XHQgKi9cblx0XHRwYXRoTWFwcGVyPzogKHNjaGVtYU5hbWVzcGFjZTogc3RyaW5nKSA9PiBzdHJpbmc7XG5cblx0XHQvKipcblx0XHQgKiBUaGUgcHVibGlzaCBvcHRpb25zIHJlcXVpcmVkIGZvciB0aGUgdHJhbnNwb3J0IGxheWVyLlxuXHRcdCAqL1xuXHRcdHB1Ymxpc2hPcHRpb25zPzogT3B0aW9ucy5UcmFuc3BvcnQuSVB1Ymxpc2g7XG5cblx0XHQvKipcblx0XHQgKiBXcml0ZXMgdGhlIHJlc3BvbnNlIHRvIHRoZSBpbmNvbWluZyByZXF1ZXN0LlxuXHRcdCAqL1xuXHRcdHJlc3BvbnNlV3JpdGVyPzogUmVzcG9uc2VXcml0ZXJGdW5jdGlvbjtcblxuXHRcdC8qKlxuXHRcdCAqIFRoZSBbQXBhY2hlIEF2cm9dKGh0dHBzOi8vYXZyby5hcGFjaGUub3JnL2RvY3MvY3VycmVudC8pIHNjaGVtYSB0aGF0IG1lc3NhZ2VzIGZvciB0aGlzIHJvdXRlIHNob3VsZCBiZSB2YWxpZGF0ZWQgYWdhaW5zdC5cblx0XHQgKi9cblx0XHRzY2hlbWE6IFNjaGVtYTtcblxuXHRcdC8qKlxuXHRcdCAqIERldGVybWluZXMgd2hldGhlciB0aGlzIHByb2Nlc3MgaXMgZGVhbHQgd2l0aCBzeW5jaHJvbm91c2x5LlxuXHRcdCAqIEJ5IGRlZmF1bHQsIGZhbHNlLlxuXHRcdCAqL1xuXHRcdHN5bmNocm9ub3VzPzogYm9vbGVhbjtcblxuXHR9XG5cblx0ZXhwb3J0IG5hbWVzcGFjZSBUcmFuc3BvcnQge1xuXG5cdFx0ZXhwb3J0IGludGVyZmFjZSBJUHVibGlzaCBleHRlbmRzIE9yaXp1cnUuVHJhbnNwb3J0LklQdWJsaXNoIHtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgbmFtZSBvZiB0aGUgcXVldWUgdG8gd2hpY2ggbWVzc2FnZXMgYXJlIHB1Ymxpc2hlZC5cblx0XHRcdCAqL1xuXHRcdFx0ZXZlbnROYW1lOiBzdHJpbmc7XG5cblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIGNvbnRleHQgZm9yIHRoaXMgbWVzc2FnZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBJbiBzb21lIGNhc2VzLCB0aGUgdHJhbnNwb3J0IGxheWVyIGRldGVybWluZXMgd2hlcmUgdG8gcHVibGlzaCB0aGUgbWVzc2FnZSBmcm9tIGEgY29udGV4dCBwcm9wZXJ0eS5cblx0XHRcdCAqIFRoZSBjb250ZXh0IGlzIGhlcmUgZm9yIGNvbnZlbmllbmNlIHNvIHRoYXQgdGhlIHRyYW5zcG9ydCBsYXllciBkb2VzIG5vdCBuZWVkIHRvIGRlY29kZSB0aGUgc3VwcGxpZWQgYnVmZmVyLlxuXHRcdFx0ICovXG5cdFx0XHRjb250ZXh0PzogT3JpenVydS5Db250ZXh0O1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSByYXcgbWVzc2FnZSB0byBiZSBwdWJsaXNoZWQuXG5cdFx0XHQgKlxuXHRcdFx0ICogSW4gc29tZSBjYXNlcywgdGhlIHRyYW5zcG9ydCBsYXllciBkZXRlcm1pbmVzIHdoZXJlIHRvIHB1Ymxpc2ggdGhlIG1lc3NhZ2UgZnJvbSBhIG1lc3NhZ2UgcHJvcGVydHkuXG5cdFx0XHQgKiBUaGUgbWVzc2FnZSBpcyBoZXJlIGZvciBjb252ZW5pZW5jZSBzbyB0aGF0IHRoZSB0cmFuc3BvcnQgbGF5ZXIgZG9lcyBub3QgbmVlZCB0byBkZWNvZGUgdGhlIHN1cHBsaWVkIGJ1ZmZlci5cblx0XHRcdCAqL1xuXHRcdFx0bWVzc2FnZT86IE9yaXp1cnUuTWVzc2FnZTtcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBUaGUgQXZybyBzY2hlbWEgZm9yIHRoaXMgbWVzc2FnZS5cblx0XHRcdCAqL1xuXHRcdFx0c2NoZW1hPzogQXZyb1NjaGVtYTtcblxuXHRcdH1cblxuXHRcdGV4cG9ydCBpbnRlcmZhY2UgSVN1YnNjcmliZSBleHRlbmRzIE9yaXp1cnUuVHJhbnNwb3J0LklTdWJzY3JpYmUge1xuXG5cdFx0XHQvKipcblx0XHRcdCAqIFRoZSBuYW1lIG9mIHRoZSBxdWV1ZSBmcm9tIHdoaWNoIG1lc3NhZ2VzIGFyZSBjb25zdW1lZC5cblx0XHRcdCAqL1xuXHRcdFx0ZXZlbnROYW1lOiBzdHJpbmc7XG5cblx0XHR9XG5cblx0fVxuXG59XG4iXX0=