Subversion Repository Public Repository

Nextrek

Diff Revisions 1085 vs 1086 for /s2s/development/Component_EventEmitter_AB1D7471K9AA5A4790SA69CEB8BEC017E46A.js

Diff revisions: vs.
  @@ -109,6 +109,41 @@
109 109
110 110
111 111 /**
112 + * Clears the event emitter by removing all handlers/listeners except those
113 + * which are associated with an owner in the specified owners array.
114 + *
115 + * @method clearExcept
116 + * @param {Object[]} owners - An array of owner objects. Only handlers/listeners which are not
117 + * associated with that owners are removed.
118 + */
119 +
120 + Component_EventEmitter.prototype.clearExcept = function(owners) {
121 + var event, events, handlerList, handlers, i, l, len, results;
122 + this.needsSort = {};
123 + this.defaultData = {};
124 + events = Object.keys(this.handlers);
125 + results = [];
126 + for (l = 0, len = events.length; l < len; l++) {
127 + event = events[l];
128 + handlers = this.handlers[event];
129 + results.push((function() {
130 + var len1, m, results1;
131 + results1 = [];
132 + for (i = m = 0, len1 = handlers.length; m < len1; i = ++m) {
133 + handlerList = handlers[i];
134 + handlerList = handlerList.filter(function(h) {
135 + return owners.indexOf(h.owner) !== 1;
136 + });
137 + results1.push(handlers[i] = handlerList);
138 + }
139 + return results1;
140 + })());
141 + }
142 + return results;
143 + };
144 +
145 +
146 + /**
112 147 * Adds a new observer/listener for a specified event.
113 148 *
114 149 * @method on
  @@ -383,5 +418,5 @@
383 418
384 419 gs.GlobalEventManager = new Component_EventEmitter();
385 420
386 - //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsc0JBQUE7RUFBQTs7O0FBQU07Ozs7QUFFRjs7Ozs7Ozs7O21DQVFBLG1CQUFBLEdBQXFCLFNBQUMsSUFBRCxFQUFPLE9BQVA7QUFDakIsUUFBQTtBQUFBLFNBQUEsa0JBQUE7TUFDSSxJQUFBLEdBQU8sSUFBQyxDQUFBLFFBQVMsQ0FBQSxDQUFBO0FBQ2pCLFdBQVMsb0ZBQVQ7UUFDSSxRQUFBLEdBQVcsSUFBSyxDQUFBLENBQUE7UUFDaEIsQ0FBQSxHQUFJO0FBQ0osZUFBTSxDQUFBLEdBQUksUUFBUSxDQUFDLE1BQW5CO1VBQ0ksT0FBQSxHQUFVLFFBQVMsQ0FBQSxDQUFBO1VBRW5CLElBQUcsQ0FBQyxPQUFPLENBQUMsT0FBVCxJQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBeEM7WUFDSSxRQUFRLENBQUMsTUFBVCxDQUFnQixDQUFoQixFQUFtQixDQUFuQixFQURKO1dBQUEsTUFBQTtZQUdJLENBQUEsR0FISjs7UUFISjtBQUhKO0FBRko7QUFjQSxXQUFPO0VBZlU7OztBQWdCckI7Ozs7Ozs7Ozs7RUFTYSxnQ0FBQTtJQUNULHlEQUFBLFNBQUE7O0FBRUE7Ozs7Ozs7SUFPQSxJQUFDLENBQUEsUUFBRCxHQUFZOztBQUVaOzs7OztJQUtBLElBQUMsQ0FBQSxXQUFELEdBQWU7O0FBRWY7Ozs7O0lBS0EsSUFBQyxDQUFBLFNBQUQsR0FBYTs7QUFFYjs7Ozs7SUFLQSxJQUFDLENBQUEsU0FBRCxHQUFhOztBQUViOzs7OztJQUtBLElBQUMsQ0FBQSxlQUFELEdBQW1COztBQUVuQjs7Ozs7SUFLQSxJQUFDLENBQUEsVUFBRCxHQUFjO0VBN0NMOzs7QUErQ2I7Ozs7OzttQ0FLQSxLQUFBLEdBQU8sU0FBQTtJQUNILElBQUMsQ0FBQSxTQUFELEdBQWE7SUFDYixJQUFDLENBQUEsUUFBRCxHQUFZO1dBQ1osSUFBQyxDQUFBLFdBQUQsR0FB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eUIsRUFBRSxDQUFDOztBQTZSeEMsRUFBRSxDQUFDLHNCQUFILEdBQTRCOztBQUM1QixFQUFFLENBQUMsWUFBSCxHQUFrQjs7QUFDbEIsRUFBRSxDQUFDLGtCQUFILEdBQTRCLElBQUEsc0JBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuI1xuIyAgIFNjcmlwdDogQ29tcG9uZW50X0V2ZW50RW1pdHRlclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgQ29tcG9uZW50X0V2ZW50RW1pdHRlciBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICNAb2JqZWN0Q29kZWNCbGFja0xpc3QgPSBbXCJoYW5kbGVyc1wiXVxuICAgICMjIypcbiAgICAqIENhbGxlZCBpZiB0aGlzIG9iamVjdCBpbnN0YW5jZSBpcyByZXN0b3JlZCBmcm9tIGEgZGF0YS1idW5kbGUuIEl0IGNhbiBiZSB1c2VkXG4gICAgKiByZS1hc3NpZ24gZXZlbnQtaGFuZGxlciwgYW5vbnltb3VzIGZ1bmN0aW9ucywgZXRjLlxuICAgICogXG4gICAgKiBAbWV0aG9kIG9uRGF0YUJ1bmRsZVJlc3RvcmUuXG4gICAgKiBAcGFyYW0gT2JqZWN0IGRhdGEgLSBUaGUgZGF0YS1idW5kbGVcbiAgICAqIEBwYXJhbSBncy5PYmplY3RDb2RlY0NvbnRleHQgY29udGV4dCAtIFRoZSBjb2RlYy1jb250ZXh0LlxuICAgICMjI1xuICAgIG9uRGF0YUJ1bmRsZVJlc3RvcmU6IChkYXRhLCBjb250ZXh0KSAtPlxuICAgICAgICBmb3IgayBvZiBAaGFuZGxlcnNcbiAgICAgICAgICAgIGxpc3QgPSBAaGFuZGxlcnNba11cbiAgICAgICAgICAgIGZvciBpIGluIFswLi4ubGlzdC5sZW5ndGhdXG4gICAgICAgICAgICAgICAgaGFuZGxlcnMgPSBsaXN0W2ldXG4gICAgICAgICAgICAgICAgaiA9IDBcbiAgICAgICAgICAgICAgICB3aGlsZSBqIDwgaGFuZGxlcnMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBoYW5kbGVyc1tqXVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgIWhhbmRsZXIuaGFuZGxlciBvciAhaGFuZGxlci5oYW5kbGVyLiR2bm1fY2JcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzLnNwbGljZShqLCAxKVxuICAgICAgICAgICAgICAgICAgICBlbHNlICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgaisrXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAjQGhhbmRsZXJzID0ge31cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAjIyMqXG4gICAgKiBBIGNvbXBvbmVudCB3aGljaCBhbGxvdyBhIGdhbWUgb2JqZWN0IHRvIGZpcmUgZXZlbnRzIGFuZCBtYW5hZ2UgYSBsaXN0XG4gICAgKiBvZiBvYnNlcnZlcnMuXG4gICAgKlxuICAgICogQG1vZHVsZSBnc1xuICAgICogQGNsYXNzIENvbXBvbmVudF9FdmVudEVtaXR0ZXJcbiAgICAqIEBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICogQG1lbWJlcm9mIGdzXG4gICAgIyMjXG4gICAgY29uc3RydWN0b3I6IC0+XG4gICAgICAgIHN1cGVyXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogTGlzdCBvZiByZWdpc3RlcmVkIG9ic2VydmVycy5cbiAgICAgICAgKlxuICAgICAgICAqIEBwcm9wZXJ0eSBoYW5kbGVyc1xuICAgICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAaGFuZGxlcnMgPSB7fVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSBkZWZhdWx0RGF0YVxuICAgICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAZGVmYXVsdERhdGEgPSB7fVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSBjaGFpbkluZm9cbiAgICAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAjIyNcbiAgICAgICAgQGNoYWluSW5mbyA9IHt9XG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IG5lZWRzU29ydFxuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAjIyNcbiAgICAgICAgQG5lZWRzU29ydCA9IHt9XG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IG1hcmtlZEZvclJlbW92ZVxuICAgICAgICAqIEB0eXBlIE9iamVjdFtdXG4gICAgICAgICogQHByaXZhdGVcbiAgICAgICAgIyMjXG4gICAgICAgIEBtYXJrZWRGb3JSZW1vdmUgPSBbXVxuICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IGlzRW1pdHRpbmdcbiAgICAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAjIyNcbiAgICAgICAgQGlzRW1pdHRpbmcgPSAwXG4gICAgXG4gICAgIyMjKlxuICAgICogQ2xlYXJzIHRoZSBldmVudCBlbWl0dGVyIGJ5IHJlbW92aW5nIGFsbCBoYW5kbGVycy9saXN0ZW5lcnMuXG4gICAgKlxuICAgICogQG1ldGhvZCBjbGVhclxuICAgICMjIyBcbiAgICBjbGVhcjogLT5cbiAgICAgICAgQG5lZWRzU29ydCA9IHt9XG4gICAgICAgIEBoYW5kbGVycyA9IHt9XG4gICAgICAgIEBkZWZhdWx0RGF0YSA9IHt9XG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIEFkZHMgYSBuZXcgb2JzZXJ2ZXIvbGlzdGVuZXIgZm9yIGEgc3BlY2lmaWVkIGV2ZW50LlxuICAgICpcbiAgICAqIEBtZXRob2Qgb25cbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgZXZlbnQgbmFtZS5cbiAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXIgLSBUaGUgaGFuZGxlci1mdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgZXZlbnQgaXMgZmlyZWQuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gW2RhdGE9e31dIC0gQW4gb3B0aW9uYWwgaW5mby1vYmplY3QgcGFzc2VkIHRvIHRoZSBoYW5kbGVyLWZ1bmN0aW9uLlxuICAgICogQHBhcmFtIHtPYmplY3R9IFtvd25lcj1udWxsXSAtIEFuIG9wdGlvbmFsIG93bmVyLW9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIG9ic2VydmVyL2xpc3RlbmVyLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IHByaW9yaXR5IC0gQW4gb3B0aW9uYWwgcHJpb3JpdHkgbGV2ZWwuIEFuIG9ic2VydmVyL2xpc3RlbmVyIHdpdGggYSBoaWdoZXIgbGV2ZWwgd2lsbCByZWNlaXZlIHRoZSBldmVudCBiZWZvcmUgb2JzZXJ2ZXJzL2xpc3RlbmVycyB3aXRoIGEgbG93ZXIgbGV2ZWwuXG4gICAgKiBAcmV0dXJuIHtncy5FdmVudE9ic2VydmVyfSAtIFRoZSBhZGRlZCBvYnNlcnZlci1vYmplY3QuXG4gICAgIyMjICAgIFxuICAgIG9uOiAoZXZlbnROYW1lLCBoYW5kbGVyLCBkYXRhLCBvd25lciwgcHJpb3JpdHkpIC0+XG4gICAgICAgIHByaW9yaXR5ID0gcHJpb3JpdHkgfHwgMFxuICAgICAgICBAbmVlZHNTb3J0W2V2ZW50TmFtZV0gPSB0cnVlXG4gICAgICAgIGlmIG5vdCBAaGFuZGxlcnNbZXZlbnROYW1lXT9cbiAgICAgICAgICAgIEBoYW5kbGVyc1tldmVudE5hbWVdID0gW11cbiAgICAgICAgaWYgbm90IEBoYW5kbGVyc1tldmVudE5hbWVdW3ByaW9yaXR5XVxuICAgICAgICAgICAgQGhhbmRsZXJzW2V2ZW50TmFtZV1bcHJpb3JpdHldID0gW11cbiAgICAgICAgICAgIFxuICAgICAgICBoYW5kbGVyT2JqZWN0ID0geyBoYW5kbGVyOiBoYW5kbGVyLCBvbmNlOiBubywgZGF0YTogZGF0YSwgb3duZXI6IG93bmVyLCBldmVudE5hbWU6IGV2ZW50TmFtZSwgcHJpb3JpdHk6IHByaW9yaXR5IH1cbiAgICAgICAgQGhhbmRsZXJzW2V2ZW50TmFtZV1bcHJpb3JpdHldLnB1c2goaGFuZGxlck9iamVjdClcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBoYW5kbGVyT2JqZWN0XG4gICAgXG4gICAgIyMjKlxuICAgICogQWRkcyBhIG5ldyBvYnNlcnZlci9saXN0ZW5lciBmb3IgYSBzcGVjaWZpZWQgZXZlbnQgYW5kIHJlbW92ZXMgaXRcbiAgICAqIGFmdGVyIHRoZSBldmVuIGhhcyBiZWVuIGVtaXR0ZWQgb25jZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIG9uY2VcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgZXZlbnQgbmFtZS5cbiAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXIgLSBUaGUgaGFuZGxlci1mdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGUgZXZlbnQgaXMgZmlyZWQuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gW2RhdGE9e31dIC0gQW4gb3B0aW9uYWwgaW5mby1vYmplY3QgcGFzc2VkIHRvIHRoZSBoYW5kbGVyLWZ1bmN0aW9uLlxuICAgICogQHBhcmFtIHtPYmplY3R9IFtvd25lcj1udWxsXSAtIEFuIG9wdGlvbmFsIG93bmVyLW9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIG9ic2VydmVyL2xpc3RlbmVyLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IHByaW9yaXR5IC0gQW4gb3B0aW9uYWwgcHJpb3JpdHkgbGV2ZWwuIEFuIG9ic2VydmVyL2xpc3RlbmVyIHdpdGggYSBoaWdoZXIgbGV2ZWwgd2lsbCByZWNlaXZlIHRoZSBldmVudCBiZWZvcmUgb2JzZXJ2ZXJzL2xpc3RlbmVycyB3aXRoIGEgbG93ZXIgbGV2ZWwuXG4gICAgKiBAcmV0dXJuIHtncy5FdmVudE9ic2VydmVyfSAtIFRoZSBhZGRlZCBvYnNlcnZlci1vYmplY3QuXG4gICAgIyMjICAgICAgICBcbiAgICBvbmNlOiAoZXZlbnROYW1lLCBoYW5kbGVyLCBkYXRhLCBvd25lciwgcHJpb3JpdHkpIC0+XG4gICAgICAgIGhhbmRsZXJPYmplY3QgPSBAb24oZXZlbnROYW1lLCBoYW5kbGVyLCBkYXRhLCBvd25lciwgcHJpb3JpdHkpXG4gICAgICAgIGhhbmRsZXJPYmplY3Qub25jZSA9IHllc1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIGhhbmRsZXJPYmplY3RcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogUmVtb3ZlcyBhbiBvYnNlcnZlci9saXN0ZW5lciBmcm9tIGEgc3BlY2lmaWVkIGV2ZW50LiBJZiBoYW5kbGVyIHBhcmFtZXRlclxuICAgICogaXMgbnVsbCwgYWxsIG9ic2VydmVycyBmb3IgdGhlIHNwZWNpZmllZCBldmVudCBhcmUgcmVtb3ZlZC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIG9mZlxuICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBldmVudCBuYW1lLlxuICAgICogQHBhcmFtIHtncy5FdmVudE9ic2VydmVyfSBbaGFuZGxlcj1udWxsXSAtIFRoZSBvYnNlcnZlci1vYmplY3QgdG8gcmVtb3ZlLiBcbiAgICAqIElmIG51bGwsIGFsbCBvYnNlcnZlcnMgZm9yIHRoZSBzcGVjaWZpZWQgZXZlbnQgYXJlIHJlbW92ZWQuXG4gICAgIyMjICAgIFxuICAgIG9mZjogKGV2ZW50TmFtZSwgaGFuZGxlcikgLT5cbiAgICAgICAgaWYgQGlzRW1pdHRpbmcgPiAwIGFuZCBoYW5kbGVyXG4gICAgICAgICAgICBAbWFya2VkRm9yUmVtb3ZlLnB1c2goaGFuZGxlcilcbiAgICAgICAgZWxzZSBpZiBoYW5kbGVyP1xuICAgICAgICAgICAgQGhhbmRsZXJzW2V2ZW50TmFtZV0/W2hhbmRsZXIucHJpb3JpdHldPy5yZW1vdmUoaGFuZGxlcilcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgQGhhbmRsZXJzW2V2ZW50TmFtZV0gPSBbXVxuICAgICAgICAgICAgXG4gICAgIyMjKlxuICAgICogUmVtb3ZlcyBhbGwgb2JzZXJ2ZXJzL2xpc3RlbmVycyBmcm9tIGFuIGV2ZW50IHdoaWNoIGFyZSBiZWxvbmdpbmcgdG8gdGhlIHNwZWNpZmllZFxuICAgICogb3duZXIuXG4gICAgKlxuICAgICogQG1ldGhvZCBvZmZCeU93bmVyXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIGV2ZW50IG5hbWUuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gb3duZXIgLSBUaGUgb3duZXIuXG4gICAgKiBAcmV0dXJuIHtudW1iZXJ9IENvdW50IG9mIHJlbW92ZWQgb2JzZXJ2ZXJzL2xpc3RlbmVycy5cbiAgICAjIyNcbiAgICBvZmZCeU93bmVyOiAoZXZlbnROYW1lLCBvd25lcikgLT5cbiAgICAgICAgaWYgQGhhbmRsZXJzW2V2ZW50TmFtZV1cbiAgICAgICAgICAgIGlmIEBpc0VtaXR0aW5nID4gMFxuICAgICAgICAgICAgICAgIGZvciBoYW5kbGVyTGlzdCBpbiBAaGFuZGxlcnNbZXZlbnROYW1lXVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVycyA9IGhhbmRsZXJMaXN0Py53aGVyZSAoeCkgLT4geC5vd25lciA9PSBvd25lclxuICAgICAgICAgICAgICAgICAgICBmb3IgaGFuZGxlciBpbiBoYW5kbGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgQG1hcmtlZEZvclJlbW92ZS5wdXNoKGhhbmRsZXIpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZm9yIGhhbmRsZXJMaXN0IGluIEBoYW5kbGVyc1tldmVudE5hbWVdXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZXJMaXN0LnJlbW92ZUFsbCgoeCkgLT4geC5vd25lciA9PSBvd25lcilcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogRW1pdHMgdGhlIHNwZWNpZmllZCBldmVudC4gQWxsIG9ic2VydmVycy9saXN0ZW5lcnMgcmVnaXN0ZXJlZCBmb3IgdGhlXG4gICAgKiBzcGVjaWZpZWQgZXZlbnQgYXJlIGluZm9ybWVkLlxuICAgICpcbiAgICAqIEBtZXRob2QgZW1pdFxuICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudCB0byBmaXJlLlxuICAgICogQHBhcmFtIHtPYmplY3R9IFtzZW5kZXI9bnVsbF0gLSBUaGUgc2VuZGVyIG9mIHRoZSBldmVudC5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbZGF0YT17fV0gLSBBbiBvcHRpb25hbCBvYmplY3QgcGFzc2VkIHRvIGVhY2ggaGFuZGxlci1mdW5jdGlvbi5cbiAgICAjIyMgICAgICBcbiAgICBlbWl0OiAoZXZlbnROYW1lLCBzZW5kZXIsIGRhdGEpIC0+XG4gICAgICAgIGhhbmRsZXJMaXN0cyA9IEBoYW5kbGVyc1tldmVudE5hbWVdXG4gICAgICAgIGRhdGEgPSBkYXRhID8ge30gI0BkZWZhdWx0RGF0YVxuICAgICAgICBcbiAgICAgICAgaWYgaGFuZGxlckxpc3RzIGFuZCBAbmVlZHNTb3J0W2V2ZW50TmFtZV1cbiAgICAgICAgICAgIEBuZWVkc1NvcnRbZXZlbnROYW1lXSA9IG5vXG4gICAgICAgICAgICBmb3IgaGFuZGxlckxpc3QgaW4gaGFuZGxlckxpc3RzXG4gICAgICAgICAgICAgICAgaGFuZGxlckxpc3Quc29ydCAoYSwgYikgLT5cbiAgICAgICAgICAgICAgICAgICAgaWYgYS5vd25lciBhbmQgYi5vd25lclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgYS5vd25lci5ySW5kZXggPiBiLm93bmVyLnJJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgYS5vd25lci5ySW5kZXggPCBiLm93bmVyLnJJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMFxuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgICAgIFxuICAgICAgICBpZiBoYW5kbGVyTGlzdHM/XG4gICAgICAgICAgICBmb3IgaGFuZGxlckxpc3QgaW4gaGFuZGxlckxpc3RzIGJ5IC0xXG4gICAgICAgICAgICAgICAgaWYgIWhhbmRsZXJMaXN0IHRoZW4gY29udGludWVcbiAgICAgICAgICAgICAgICBpID0gMFxuICAgICAgICAgICAgICAgIGNvdW50ID0gaGFuZGxlckxpc3QubGVuZ3RoXG4gICAgICAgICAgICAgICAgQGlzRW1pdHRpbmcrK1xuICAgICAgICAgICAgICAgIHdoaWxlIGkgPCBjb3VudFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVyID0gaGFuZGxlckxpc3RbaV1cbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuaGFuZGxlciA9IGhhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5zZW5kZXIgPSBzZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5kYXRhID0gaGFuZGxlci5kYXRhXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAhaGFuZGxlci5vd25lciBvciAhaGFuZGxlci5vd25lci52aXNpYmxlPyBvciBoYW5kbGVyLm93bmVyLnZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIuaGFuZGxlcihkYXRhKSBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiBoYW5kbGVyLm9uY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZWRGb3JSZW1vdmUucHVzaChoYW5kbGVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGlmIGRhdGEuYnJlYWtDaGFpblxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGkrK1xuICAgICAgICAgICAgICAgIEBpc0VtaXR0aW5nLS1cbiAgICAgICAgICAgICAgICBpZiBkYXRhLmJyZWFrQ2hhaW5cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5icmVha0NoYWluID0gbm9cbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIGlmICFAaXNFbWl0dGluZyBhbmQgQG1hcmtlZEZvclJlbW92ZS5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgZm9yIGhhbmRsZXIgaW4gQG1hcmtlZEZvclJlbW92ZVxuICAgICAgICAgICAgICAgICAgICBAaGFuZGxlcnNbaGFuZGxlci5ldmVudE5hbWVdW2hhbmRsZXIucHJpb3JpdHldLnJlbW92ZShoYW5kbGVyKVxuICAgICAgICAgICAgICAgIEBtYXJrZWRGb3JSZW1vdmUgPSBbXVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gbnVsbFxuICAgIFxuICAgIFxuXG4gICAgIyMjKlxuICAgICogQ2hlY2tzIGlmIGFuIGV2ZW50LWhhbmRsZXIgd2l0aCBhIHNwZWNpZmllZCBvd25lciBleGlzdHMgZm9yIHRoZVxuICAgICogZ2l2ZW4gZXZlbnQuXG4gICAgKlxuICAgICogQG1ldGhvZCBjaGVja0Zvck93bmVyXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIGV2ZW50IG5hbWUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvd25lciAtIFRoZSBvd25lciB0byBzZWFyY2ggZm9yLlxuICAgICogQHJldHVybiB7Ym9vbGVhbn0gSWYgPGI+dHJ1ZTwvYj4sIGFuIGV2ZW50LWhhbmRsZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG93bmVyXG4gICAgKiBleGlzdHMgZm9yIHRoZSBnaXZlbiBldmVudC4gT3RoZXJ3aXNlIDxiPmZhbHNlPC9iPi5cbiAgICAjIyMgIFxuICAgIGNoZWNrRm9yT3duZXI6IChldmVudE5hbWUsIG93bmVyKSAtPlxuICAgICAgICByZXN1bHQgPSBub1xuICAgICAgICBcbiAgICAgICAgZm9yIGhhbmRsZXIgaW4gQGhhbmRsZXJzW2V2ZW50TmFtZV1cbiAgICAgICAgICAgIGlmIGhhbmRsZXIub3duZXIgPT0gb3duZXJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB5ZXNcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIENoZWNrcyBpZiBhbiBldmVudC1oYW5kbGVyIHdpdGggYSBzcGVjaWZpZWQgaGFuZGxlci1mdW5jdGlvbiBleGlzdHMgZm9yIHRoZVxuICAgICogZ2l2ZW4gZXZlbnQuXG4gICAgKlxuICAgICogQG1ldGhvZCBjaGVja0ZvckhhbmRsZXJGdW5jdGlvblxuICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBldmVudCBuYW1lLlxuICAgICogQHBhcmFtIHtmdW5jdGlvbn0gaGFuZGxlckZ1bmN0aW9uIC0gVGhlIGhhbmRsZXItZnVuY3Rpb24gdG8gc2VhcmNoIGZvci5cbiAgICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRydWUsIGFuIG9ic2VydmVyIHdpdGh0IGhlIHNwZWNpZmllZCBoYW5kbGVyLWZ1bmN0aW9uXG4gICAgKiBleGlzdHMgZm9yIHRoZSBnaXZlbiBldmVudC4gT3RoZXJ3aXNlIGZhbHNlLlxuICAgICMjIyAgXG4gICAgY2hlY2tGb3JIYW5kbGVyRnVuY3Rpb246IChldmVudE5hbWUsIGhhbmRsZXJGdW5jdGlvbikgLT4gXG4gICAgICAgIHJlc3VsdCA9IG5vXG4gICAgICAgIFxuICAgICAgICBpZiBoYW5kbGVyRnVuY3Rpb24/XG4gICAgICAgICAgICBmb3IgaGFuZGxlciBpbiBAaGFuZGxlcnNbZXZlbnROYW1lXVxuICAgICAgICAgICAgICAgIGlmIGhhbmRsZXIuaGFuZGxlciA9PSBoYW5kbGVyRnVuY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0geWVzXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIE5vdCBpbXBsZW1lbnRlZCB5ZXQuXG4gICAgKiBAbWV0aG9kIHVwZGF0ZVxuICAgICMjIyBcbiAgICAjIEZJWE1FOiBXaHkgc2hvdWxkIGV2ZW50LWVtaXR0ZXIgaW5mbHVlbmNlIHRoZSBhY3RpdmUtcHJvcGVydHk/XG4gICAgdXBkYXRlOiAtPlxuICAgICAgICBAb2JqZWN0LmFjdGl2ZSA9IEBvYmplY3QuYWN0aXZlIGFuZCAoIUBvYmplY3QucGFyZW50IG9yIEBvYmplY3QucGFyZW50LmFjdGl2ZSlcbiAgICAgICAgXG5ncy5Db21wb25lbnRfRXZlbnRFbWl0dGVyID0gQ29tcG9uZW50X0V2ZW50RW1pdHRlclxuZ3MuRXZlbnRFbWl0dGVyID0gQ29tcG9uZW50X0V2ZW50RW1pdHRlclxuZ3MuR2xvYmFsRXZlbnRNYW5hZ2VyID0gbmV3IENvbXBvbmVudF9FdmVudEVtaXR0ZXIoKSJdfQ==
421 + //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsc0JBQUE7RUFBQTs7O0FBQU07Ozs7QUFFRjs7Ozs7Ozs7O21DQVFBLG1CQUFBLEdBQXFCLFNBQUMsSUFBRCxFQUFPLE9BQVA7QUFDakIsUUFBQTtBQUFBLFNBQUEsa0JBQUE7TUFDSSxJQUFBLEdBQU8sSUFBQyxDQUFBLFFBQVMsQ0FBQSxDQUFBO0FBQ2pCLFdBQVMsb0ZBQVQ7UUFDSSxRQUFBLEdBQVcsSUFBSyxDQUFBLENBQUE7UUFDaEIsQ0FBQSxHQUFJO0FBQ0osZUFBTSxDQUFBLEdBQUksUUFBUSxDQUFDLE1BQW5CO1VBQ0ksT0FBQSxHQUFVLFFBQVMsQ0FBQSxDQUFBO1VBRW5CLElBQUcsQ0FBQyxPQUFPLENBQUMsT0FBVCxJQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBeEM7WUFDSSxRQUFRLENBQUMsTUFBVCxDQUFnQixDQUFoQixFQUFtQixDQUFuQixFQURKO1dBQUEsTUFBQTtZQUdJLENBQUEsR0FISjs7UUFISjtBQUhKO0FBRko7QUFjQSxXQUFPO0VBZlU7OztBQWdCckI7Ozs7Ozs7Ozs7RUFTYSxnQ0FBQTtJQUNULHlEQUFBLFNBQUE7O0FBRUE7Ozs7Ozs7SUFPQSxJQUFDLENBQUEsUUFBRCxHQUFZOztBQUVaOzs7OztJQUtBLElBQUMsQ0FBQSxXQUFELEdBQWU7O0FBRWY7Ozs7O0lBS0EsSUFBQyxDQUFBLFNBQUQsR0FBYTs7QUFFYjs7Ozs7SUFLQSxJQUFDLENBQUEsU0FBRCxHQUFhOztBQUViOzs7OztJQUtBLElBQUMsQ0FBQSxlQUFELEdBQW1COztBQUVuQjs7Ozs7SUFLQSxJQUFDLENBQUEsVUFBRCxHQUFjO0VBN0NMOzs7QUErQ2I7Ozs7OzttQ0FLQSxLQUFBLEdBQU8sU0FBQTtJQUNILElBQUMsQ0FBQSxTQUFELEdBQWE7SUFDYixJQUFDLENBQUEsUUFBRCxHQUFZO1dBQ1osSUFBQyxDQUFBLFdBQUQsR0FB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Ozs7Ozs7O21DQVVBLHVCQUFBLEdBQXlCLFNBQUMsU0FBRCxFQUFZLGVBQVo7QUFDckIsUUFBQTtJQUFBLE1BQUEsR0FBUztJQUVULElBQUcsdUJBQUg7QUFDSTtBQUFBLFdBQUEscUNBQUE7O1FBQ0ksSUFBRyxPQUFPLENBQUMsT0FBUixLQUFtQixlQUF0QjtVQUNJLE1BQUEsR0FBUztBQUNULGdCQUZKOztBQURKLE9BREo7O0FBTUEsV0FBTztFQVRjOzs7QUFXekI7Ozs7O21DQUtBLE1BQUEsR0FBUSxTQUFBO1dBQ0osSUFBQyxDQUFBLE1BQU0sQ0FBQyxNQUFSLEdBQWlCLElBQUMsQ0FBQSxNQUFNLENBQUMsTUFBUixJQUFtQixDQUFDLENBQUMsSUFBQyxDQUFBLE1BQU0sQ0FBQyxNQUFULElBQW1CLElBQUMsQ0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQW5DO0VBRGhDOzs7O0dBN1N5QixFQUFFLENBQUM7O0FBZ1R4QyxFQUFFLENBQUMsc0JBQUgsR0FBNEI7O0FBQzVCLEVBQUUsQ0FBQyxZQUFILEdBQWtCOztBQUNsQixFQUFFLENBQUMsa0JBQUgsR0FBNEIsSUFBQSxzQkFBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfRXZlbnRFbWl0dGVyXG4jXG4jICAgJCRDT1BZUklHSFQkJFxuI1xuIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jbGFzcyBDb21wb25lbnRfRXZlbnRFbWl0dGVyIGV4dGVuZHMgZ3MuQ29tcG9uZW50XG4gICAgI0BvYmplY3RDb2RlY0JsYWNrTGlzdCA9IFtcImhhbmRsZXJzXCJdXG4gICAgIyMjKlxuICAgICogQ2FsbGVkIGlmIHRoaXMgb2JqZWN0IGluc3RhbmNlIGlzIHJlc3RvcmVkIGZyb20gYSBkYXRhLWJ1bmRsZS4gSXQgY2FuIGJlIHVzZWRcbiAgICAqIHJlLWFzc2lnbiBldmVudC1oYW5kbGVyLCBhbm9ueW1vdXMgZnVuY3Rpb25zLCBldGMuXG4gICAgKiBcbiAgICAqIEBtZXRob2Qgb25EYXRhQnVuZGxlUmVzdG9yZS5cbiAgICAqIEBwYXJhbSBPYmplY3QgZGF0YSAtIFRoZSBkYXRhLWJ1bmRsZVxuICAgICogQHBhcmFtIGdzLk9iamVjdENvZGVjQ29udGV4dCBjb250ZXh0IC0gVGhlIGNvZGVjLWNvbnRleHQuXG4gICAgIyMjXG4gICAgb25EYXRhQnVuZGxlUmVzdG9yZTogKGRhdGEsIGNvbnRleHQpIC0+XG4gICAgICAgIGZvciBrIG9mIEBoYW5kbGVyc1xuICAgICAgICAgICAgbGlzdCA9IEBoYW5kbGVyc1trXVxuICAgICAgICAgICAgZm9yIGkgaW4gWzAuLi5saXN0Lmxlbmd0aF1cbiAgICAgICAgICAgICAgICBoYW5kbGVycyA9IGxpc3RbaV1cbiAgICAgICAgICAgICAgICBqID0gMFxuICAgICAgICAgICAgICAgIHdoaWxlIGogPCBoYW5kbGVycy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGhhbmRsZXJzW2pdXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiAhaGFuZGxlci5oYW5kbGVyIG9yICFoYW5kbGVyLmhhbmRsZXIuJHZubV9jYlxuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMuc3BsaWNlKGosIDEpXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBqKytcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICNAaGFuZGxlcnMgPSB7fVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICMjIypcbiAgICAqIEEgY29tcG9uZW50IHdoaWNoIGFsbG93IGEgZ2FtZSBvYmplY3QgdG8gZmlyZSBldmVudHMgYW5kIG1hbmFnZSBhIGxpc3RcbiAgICAqIG9mIG9ic2VydmVycy5cbiAgICAqXG4gICAgKiBAbW9kdWxlIGdzXG4gICAgKiBAY2xhc3MgQ29tcG9uZW50X0V2ZW50RW1pdHRlclxuICAgICogQGV4dGVuZHMgZ3MuQ29tcG9uZW50XG4gICAgKiBAbWVtYmVyb2YgZ3NcbiAgICAjIyNcbiAgICBjb25zdHJ1Y3RvcjogLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBMaXN0IG9mIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzLlxuICAgICAgICAqXG4gICAgICAgICogQHByb3BlcnR5IGhhbmRsZXJzXG4gICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgICogQHByaXZhdGVcbiAgICAgICAgIyMjXG4gICAgICAgIEBoYW5kbGVycyA9IHt9XG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IGRlZmF1bHREYXRhXG4gICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgICogQHByaXZhdGVcbiAgICAgICAgIyMjXG4gICAgICAgIEBkZWZhdWx0RGF0YSA9IHt9XG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQHByb3BlcnR5IGNoYWluSW5mb1xuICAgICAgICAqIEB0eXBlIE9iamVjdFxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAY2hhaW5JbmZvID0ge31cbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBAcHJvcGVydHkgbmVlZHNTb3J0XG4gICAgICAgICogQHR5cGUgYm9vbGVhblxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAbmVlZHNTb3J0ID0ge31cbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBAcHJvcGVydHkgbWFya2VkRm9yUmVtb3ZlXG4gICAgICAgICogQHR5cGUgT2JqZWN0W11cbiAgICAgICAgKiBAcHJpdmF0ZVxuICAgICAgICAjIyNcbiAgICAgICAgQG1hcmtlZEZvclJlbW92ZSA9IFtdXG4gICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBAcHJvcGVydHkgaXNFbWl0dGluZ1xuICAgICAgICAqIEB0eXBlIG51bWJlclxuICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICMjI1xuICAgICAgICBAaXNFbWl0dGluZyA9IDBcbiAgICBcbiAgICAjIyMqXG4gICAgKiBDbGVhcnMgdGhlIGV2ZW50IGVtaXR0ZXIgYnkgcmVtb3ZpbmcgYWxsIGhhbmRsZXJzL2xpc3RlbmVycy5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGNsZWFyXG4gICAgIyMjIFxuICAgIGNsZWFyOiAtPlxuICAgICAgICBAbmVlZHNTb3J0ID0ge31cbiAgICAgICAgQGhhbmRsZXJzID0ge31cbiAgICAgICAgQGRlZmF1bHREYXRhID0ge31cbiAgICAgIFxuICAgICMjIypcbiAgICAqIENsZWFycyB0aGUgZXZlbnQgZW1pdHRlciBieSByZW1vdmluZyBhbGwgaGFuZGxlcnMvbGlzdGVuZXJzIGV4Y2VwdCB0aG9zZVxuICAgICogd2hpY2ggYXJlIGFzc29jaWF0ZWQgd2l0aCBhbiBvd25lciBpbiB0aGUgc3BlY2lmaWVkIG93bmVycyBhcnJheS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGNsZWFyRXhjZXB0XG4gICAgKiBAcGFyYW0ge09iamVjdFtdfSBvd25lcnMgLSBBbiBhcnJheSBvZiBvd25lciBvYmplY3RzLiBPbmx5IGhhbmRsZXJzL2xpc3RlbmVycyB3aGljaCBhcmUgbm90XG4gICAgKiBhc3NvY2lhdGVkIHdpdGggdGhhdCBvd25lcnMgYXJlIHJlbW92ZWQuXG4gICAgIyMjICAgXG4gICAgY2xlYXJFeGNlcHQ6IChvd25lcnMpIC0+XG4gICAgICAgIEBuZWVkc1NvcnQgPSB7fVxuICAgICAgICBAZGVmYXVsdERhdGEgPSB7fVxuICAgICAgICBcbiAgICAgICAgZXZlbnRzID0gT2JqZWN0LmtleXMoQGhhbmRsZXJzKVxuICAgICAgICBmb3IgZXZlbnQgaW4gZXZlbnRzXG4gICAgICAgICAgICBoYW5kbGVycyA9IEBoYW5kbGVyc1tldmVudF1cbiAgICAgICAgICAgIGZvciBoYW5kbGVyTGlzdCwgaSBpbiBoYW5kbGVyc1xuICAgICAgICAgICAgICAgIGhhbmRsZXJMaXN0ID0gaGFuZGxlckxpc3QuZmlsdGVyIChoKSAtPiBvd25lcnMuaW5kZXhPZihoLm93bmVyKSAhPSAxXG4gICAgICAgICAgICAgICAgaGFuZGxlcnNbaV0gPSBoYW5kbGVyTGlzdFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBBZGRzIGEgbmV3IG9ic2VydmVyL2xpc3RlbmVyIGZvciBhIHNwZWNpZmllZCBldmVudC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIG9uXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIGV2ZW50IG5hbWUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBoYW5kbGVyIC0gVGhlIGhhbmRsZXItZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGV2ZW50IGlzIGZpcmVkLlxuICAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhPXt9XSAtIEFuIG9wdGlvbmFsIGluZm8tb2JqZWN0IHBhc3NlZCB0byB0aGUgaGFuZGxlci1mdW5jdGlvbi5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3duZXI9bnVsbF0gLSBBbiBvcHRpb25hbCBvd25lci1vYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBvYnNlcnZlci9saXN0ZW5lci5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSBwcmlvcml0eSAtIEFuIG9wdGlvbmFsIHByaW9yaXR5IGxldmVsLiBBbiBvYnNlcnZlci9saXN0ZW5lciB3aXRoIGEgaGlnaGVyIGxldmVsIHdpbGwgcmVjZWl2ZSB0aGUgZXZlbnQgYmVmb3JlIG9ic2VydmVycy9saXN0ZW5lcnMgd2l0aCBhIGxvd2VyIGxldmVsLlxuICAgICogQHJldHVybiB7Z3MuRXZlbnRPYnNlcnZlcn0gLSBUaGUgYWRkZWQgb2JzZXJ2ZXItb2JqZWN0LlxuICAgICMjIyAgICBcbiAgICBvbjogKGV2ZW50TmFtZSwgaGFuZGxlciwgZGF0YSwgb3duZXIsIHByaW9yaXR5KSAtPlxuICAgICAgICBwcmlvcml0eSA9IHByaW9yaXR5IHx8IDBcbiAgICAgICAgQG5lZWRzU29ydFtldmVudE5hbWVdID0gdHJ1ZVxuICAgICAgICBpZiBub3QgQGhhbmRsZXJzW2V2ZW50TmFtZV0/XG4gICAgICAgICAgICBAaGFuZGxlcnNbZXZlbnROYW1lXSA9IFtdXG4gICAgICAgIGlmIG5vdCBAaGFuZGxlcnNbZXZlbnROYW1lXVtwcmlvcml0eV1cbiAgICAgICAgICAgIEBoYW5kbGVyc1tldmVudE5hbWVdW3ByaW9yaXR5XSA9IFtdXG4gICAgICAgICAgICBcbiAgICAgICAgaGFuZGxlck9iamVjdCA9IHsgaGFuZGxlcjogaGFuZGxlciwgb25jZTogbm8sIGRhdGE6IGRhdGEsIG93bmVyOiBvd25lciwgZXZlbnROYW1lOiBldmVudE5hbWUsIHByaW9yaXR5OiBwcmlvcml0eSB9XG4gICAgICAgIEBoYW5kbGVyc1tldmVudE5hbWVdW3ByaW9yaXR5XS5wdXNoKGhhbmRsZXJPYmplY3QpXG4gICAgICAgIFxuICAgICAgICByZXR1cm4gaGFuZGxlck9iamVjdFxuICAgIFxuICAgICMjIypcbiAgICAqIEFkZHMgYSBuZXcgb2JzZXJ2ZXIvbGlzdGVuZXIgZm9yIGEgc3BlY2lmaWVkIGV2ZW50IGFuZCByZW1vdmVzIGl0XG4gICAgKiBhZnRlciB0aGUgZXZlbiBoYXMgYmVlbiBlbWl0dGVkIG9uY2UuXG4gICAgKlxuICAgICogQG1ldGhvZCBvbmNlXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lIC0gVGhlIGV2ZW50IG5hbWUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBoYW5kbGVyIC0gVGhlIGhhbmRsZXItZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGV2ZW50IGlzIGZpcmVkLlxuICAgICogQHBhcmFtIHtPYmplY3R9IFtkYXRhPXt9XSAtIEFuIG9wdGlvbmFsIGluZm8tb2JqZWN0IHBhc3NlZCB0byB0aGUgaGFuZGxlci1mdW5jdGlvbi5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3duZXI9bnVsbF0gLSBBbiBvcHRpb25hbCBvd25lci1vYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBvYnNlcnZlci9saXN0ZW5lci5cbiAgICAqIEBwYXJhbSB7bnVtYmVyfSBwcmlvcml0eSAtIEFuIG9wdGlvbmFsIHByaW9yaXR5IGxldmVsLiBBbiBvYnNlcnZlci9saXN0ZW5lciB3aXRoIGEgaGlnaGVyIGxldmVsIHdpbGwgcmVjZWl2ZSB0aGUgZXZlbnQgYmVmb3JlIG9ic2VydmVycy9saXN0ZW5lcnMgd2l0aCBhIGxvd2VyIGxldmVsLlxuICAgICogQHJldHVybiB7Z3MuRXZlbnRPYnNlcnZlcn0gLSBUaGUgYWRkZWQgb2JzZXJ2ZXItb2JqZWN0LlxuICAgICMjIyAgICAgICAgXG4gICAgb25jZTogKGV2ZW50TmFtZSwgaGFuZGxlciwgZGF0YSwgb3duZXIsIHByaW9yaXR5KSAtPlxuICAgICAgICBoYW5kbGVyT2JqZWN0ID0gQG9uKGV2ZW50TmFtZSwgaGFuZGxlciwgZGF0YSwgb3duZXIsIHByaW9yaXR5KVxuICAgICAgICBoYW5kbGVyT2JqZWN0Lm9uY2UgPSB5ZXNcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBoYW5kbGVyT2JqZWN0XG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIFJlbW92ZXMgYW4gb2JzZXJ2ZXIvbGlzdGVuZXIgZnJvbSBhIHNwZWNpZmllZCBldmVudC4gSWYgaGFuZGxlciBwYXJhbWV0ZXJcbiAgICAqIGlzIG51bGwsIGFsbCBvYnNlcnZlcnMgZm9yIHRoZSBzcGVjaWZpZWQgZXZlbnQgYXJlIHJlbW92ZWQuXG4gICAgKlxuICAgICogQG1ldGhvZCBvZmZcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgZXZlbnQgbmFtZS5cbiAgICAqIEBwYXJhbSB7Z3MuRXZlbnRPYnNlcnZlcn0gW2hhbmRsZXI9bnVsbF0gLSBUaGUgb2JzZXJ2ZXItb2JqZWN0IHRvIHJlbW92ZS4gXG4gICAgKiBJZiBudWxsLCBhbGwgb2JzZXJ2ZXJzIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50IGFyZSByZW1vdmVkLlxuICAgICMjIyAgICBcbiAgICBvZmY6IChldmVudE5hbWUsIGhhbmRsZXIpIC0+XG4gICAgICAgIGlmIEBpc0VtaXR0aW5nID4gMCBhbmQgaGFuZGxlclxuICAgICAgICAgICAgQG1hcmtlZEZvclJlbW92ZS5wdXNoKGhhbmRsZXIpXG4gICAgICAgIGVsc2UgaWYgaGFuZGxlcj9cbiAgICAgICAgICAgIEBoYW5kbGVyc1tldmVudE5hbWVdP1toYW5kbGVyLnByaW9yaXR5XT8ucmVtb3ZlKGhhbmRsZXIpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIEBoYW5kbGVyc1tldmVudE5hbWVdID0gW11cbiAgICAgICAgICAgIFxuICAgICMjIypcbiAgICAqIFJlbW92ZXMgYWxsIG9ic2VydmVycy9saXN0ZW5lcnMgZnJvbSBhbiBldmVudCB3aGljaCBhcmUgYmVsb25naW5nIHRvIHRoZSBzcGVjaWZpZWRcbiAgICAqIG93bmVyLlxuICAgICpcbiAgICAqIEBtZXRob2Qgb2ZmQnlPd25lclxuICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBldmVudCBuYW1lLlxuICAgICogQHBhcmFtIHtPYmplY3R9IG93bmVyIC0gVGhlIG93bmVyLlxuICAgICogQHJldHVybiB7bnVtYmVyfSBDb3VudCBvZiByZW1vdmVkIG9ic2VydmVycy9saXN0ZW5lcnMuXG4gICAgIyMjXG4gICAgb2ZmQnlPd25lcjogKGV2ZW50TmFtZSwgb3duZXIpIC0+XG4gICAgICAgIGlmIEBoYW5kbGVyc1tldmVudE5hbWVdXG4gICAgICAgICAgICBpZiBAaXNFbWl0dGluZyA+IDBcbiAgICAgICAgICAgICAgICBmb3IgaGFuZGxlckxpc3QgaW4gQGhhbmRsZXJzW2V2ZW50TmFtZV1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMgPSBoYW5kbGVyTGlzdD8ud2hlcmUgKHgpIC0+IHgub3duZXIgPT0gb3duZXJcbiAgICAgICAgICAgICAgICAgICAgZm9yIGhhbmRsZXIgaW4gaGFuZGxlcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIEBtYXJrZWRGb3JSZW1vdmUucHVzaChoYW5kbGVyKVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGZvciBoYW5kbGVyTGlzdCBpbiBAaGFuZGxlcnNbZXZlbnROYW1lXVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVyTGlzdC5yZW1vdmVBbGwoKHgpIC0+IHgub3duZXIgPT0gb3duZXIpXG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIEVtaXRzIHRoZSBzcGVjaWZpZWQgZXZlbnQuIEFsbCBvYnNlcnZlcnMvbGlzdGVuZXJzIHJlZ2lzdGVyZWQgZm9yIHRoZVxuICAgICogc3BlY2lmaWVkIGV2ZW50IGFyZSBpbmZvcm1lZC5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGVtaXRcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgdG8gZmlyZS5cbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbc2VuZGVyPW51bGxdIC0gVGhlIHNlbmRlciBvZiB0aGUgZXZlbnQuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gW2RhdGE9e31dIC0gQW4gb3B0aW9uYWwgb2JqZWN0IHBhc3NlZCB0byBlYWNoIGhhbmRsZXItZnVuY3Rpb24uXG4gICAgIyMjICAgICAgXG4gICAgZW1pdDogKGV2ZW50TmFtZSwgc2VuZGVyLCBkYXRhKSAtPlxuICAgICAgICBoYW5kbGVyTGlzdHMgPSBAaGFuZGxlcnNbZXZlbnROYW1lXVxuICAgICAgICBkYXRhID0gZGF0YSA/IHt9ICNAZGVmYXVsdERhdGFcbiAgICAgICAgXG4gICAgICAgIGlmIGhhbmRsZXJMaXN0cyBhbmQgQG5lZWRzU29ydFtldmVudE5hbWVdXG4gICAgICAgICAgICBAbmVlZHNTb3J0W2V2ZW50TmFtZV0gPSBub1xuICAgICAgICAgICAgZm9yIGhhbmRsZXJMaXN0IGluIGhhbmRsZXJMaXN0c1xuICAgICAgICAgICAgICAgIGhhbmRsZXJMaXN0LnNvcnQgKGEsIGIpIC0+XG4gICAgICAgICAgICAgICAgICAgIGlmIGEub3duZXIgYW5kIGIub3duZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEub3duZXIuckluZGV4ID4gYi5vd25lci5ySW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIGEub3duZXIuckluZGV4IDwgYi5vd25lci5ySW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDFcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDBcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgICAgICBcbiAgICAgICAgaWYgaGFuZGxlckxpc3RzP1xuICAgICAgICAgICAgZm9yIGhhbmRsZXJMaXN0IGluIGhhbmRsZXJMaXN0cyBieSAtMVxuICAgICAgICAgICAgICAgIGlmICFoYW5kbGVyTGlzdCB0aGVuIGNvbnRpbnVlXG4gICAgICAgICAgICAgICAgaSA9IDBcbiAgICAgICAgICAgICAgICBjb3VudCA9IGhhbmRsZXJMaXN0Lmxlbmd0aFxuICAgICAgICAgICAgICAgIEBpc0VtaXR0aW5nKytcbiAgICAgICAgICAgICAgICB3aGlsZSBpIDwgY291bnRcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IGhhbmRsZXJMaXN0W2ldXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBkYXRhLmhhbmRsZXIgPSBoYW5kbGVyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuc2VuZGVyID0gc2VuZGVyXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuZGF0YSA9IGhhbmRsZXIuZGF0YVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgIWhhbmRsZXIub3duZXIgb3IgIWhhbmRsZXIub3duZXIudmlzaWJsZT8gb3IgaGFuZGxlci5vd25lci52aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmhhbmRsZXIoZGF0YSkgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgaWYgaGFuZGxlci5vbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICBAbWFya2VkRm9yUmVtb3ZlLnB1c2goaGFuZGxlcilcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpZiBkYXRhLmJyZWFrQ2hhaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBpKytcbiAgICAgICAgICAgICAgICBAaXNFbWl0dGluZy0tXG4gICAgICAgICAgICAgICAgaWYgZGF0YS5icmVha0NoYWluXG4gICAgICAgICAgICAgICAgICAgIGRhdGEuYnJlYWtDaGFpbiA9IG5vXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAhQGlzRW1pdHRpbmcgYW5kIEBtYXJrZWRGb3JSZW1vdmUubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgIGZvciBoYW5kbGVyIGluIEBtYXJrZWRGb3JSZW1vdmVcbiAgICAgICAgICAgICAgICAgICAgQGhhbmRsZXJzW2hhbmRsZXIuZXZlbnROYW1lXVtoYW5kbGVyLnByaW9yaXR5XS5yZW1vdmUoaGFuZGxlcilcbiAgICAgICAgICAgICAgICBAbWFya2VkRm9yUmVtb3ZlID0gW11cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICBcbiAgICBcblxuICAgICMjIypcbiAgICAqIENoZWNrcyBpZiBhbiBldmVudC1oYW5kbGVyIHdpdGggYSBzcGVjaWZpZWQgb3duZXIgZXhpc3RzIGZvciB0aGVcbiAgICAqIGdpdmVuIGV2ZW50LlxuICAgICpcbiAgICAqIEBtZXRob2QgY2hlY2tGb3JPd25lclxuICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZSAtIFRoZSBldmVudCBuYW1lLlxuICAgICogQHBhcmFtIHtmdW5jdGlvbn0gb3duZXIgLSBUaGUgb3duZXIgdG8gc2VhcmNoIGZvci5cbiAgICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIDxiPnRydWU8L2I+LCBhbiBldmVudC1oYW5kbGVyIHdpdGggdGhlIHNwZWNpZmllZCBvd25lclxuICAgICogZXhpc3RzIGZvciB0aGUgZ2l2ZW4gZXZlbnQuIE90aGVyd2lzZSA8Yj5mYWxzZTwvYj4uXG4gICAgIyMjICBcbiAgICBjaGVja0Zvck93bmVyOiAoZXZlbnROYW1lLCBvd25lcikgLT5cbiAgICAgICAgcmVzdWx0ID0gbm9cbiAgICAgICAgXG4gICAgICAgIGZvciBoYW5kbGVyIGluIEBoYW5kbGVyc1tldmVudE5hbWVdXG4gICAgICAgICAgICBpZiBoYW5kbGVyLm93bmVyID09IG93bmVyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0geWVzXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBDaGVja3MgaWYgYW4gZXZlbnQtaGFuZGxlciB3aXRoIGEgc3BlY2lmaWVkIGhhbmRsZXItZnVuY3Rpb24gZXhpc3RzIGZvciB0aGVcbiAgICAqIGdpdmVuIGV2ZW50LlxuICAgICpcbiAgICAqIEBtZXRob2QgY2hlY2tGb3JIYW5kbGVyRnVuY3Rpb25cbiAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgZXZlbnQgbmFtZS5cbiAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGhhbmRsZXJGdW5jdGlvbiAtIFRoZSBoYW5kbGVyLWZ1bmN0aW9uIHRvIHNlYXJjaCBmb3IuXG4gICAgKiBAcmV0dXJuIHtib29sZWFufSBJZiB0cnVlLCBhbiBvYnNlcnZlciB3aXRodCBoZSBzcGVjaWZpZWQgaGFuZGxlci1mdW5jdGlvblxuICAgICogZXhpc3RzIGZvciB0aGUgZ2l2ZW4gZXZlbnQuIE90aGVyd2lzZSBmYWxzZS5cbiAgICAjIyMgIFxuICAgIGNoZWNrRm9ySGFuZGxlckZ1bmN0aW9uOiAoZXZlbnROYW1lLCBoYW5kbGVyRnVuY3Rpb24pIC0+IFxuICAgICAgICByZXN1bHQgPSBub1xuICAgICAgICBcbiAgICAgICAgaWYgaGFuZGxlckZ1bmN0aW9uP1xuICAgICAgICAgICAgZm9yIGhhbmRsZXIgaW4gQGhhbmRsZXJzW2V2ZW50TmFtZV1cbiAgICAgICAgICAgICAgICBpZiBoYW5kbGVyLmhhbmRsZXIgPT0gaGFuZGxlckZ1bmN0aW9uXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHllc1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBOb3QgaW1wbGVtZW50ZWQgeWV0LlxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgXG4gICAgIyBGSVhNRTogV2h5IHNob3VsZCBldmVudC1lbWl0dGVyIGluZmx1ZW5jZSB0aGUgYWN0aXZlLXByb3BlcnR5P1xuICAgIHVwZGF0ZTogLT5cbiAgICAgICAgQG9iamVjdC5hY3RpdmUgPSBAb2JqZWN0LmFjdGl2ZSBhbmQgKCFAb2JqZWN0LnBhcmVudCBvciBAb2JqZWN0LnBhcmVudC5hY3RpdmUpXG4gICAgICAgIFxuZ3MuQ29tcG9uZW50X0V2ZW50RW1pdHRlciA9IENvbXBvbmVudF9FdmVudEVtaXR0ZXJcbmdzLkV2ZW50RW1pdHRlciA9IENvbXBvbmVudF9FdmVudEVtaXR0ZXJcbmdzLkdsb2JhbEV2ZW50TWFuYWdlciA9IG5ldyBDb21wb25lbnRfRXZlbnRFbWl0dGVyKCkiXX0=
387 422 //# sourceURL=Component_EventEmitter_151.js